connecting...
Google translation for articles :
2 NEMBER donated to you!!

コピペで作る、VBA!(2019/9/15追記)

nem11.20xem (2) 91 0 1
~お詫びと訂正と愚痴~
 
■お詫びと訂正
    ここで紹介しております『他のファイル(主にcsv)からコピペ』するマクロですが
    文字コードの違いにより環境によってはうまく読み込めない可能性があります。
    今週中にはほかの環境用のマクロも紹介するつもりですのでご容赦ください。
 
■愚痴
    会社PCからだとネムログへアクセスブロックされてた。。。orz
    半ば自分の仕事効率化のためにこの記事書いたのに。。。
 
~~~~~~~~~~~
我々の仕事を陰から支えているエクセルマクロ。

面倒くさい作業をアプリケーションにやらせて手作業を省略するのがその意義だ。

 

しかし、案外積極的に好んで勉強したり使用している人を見ない気がする。

決してVBAが特別難しい言語というわけではない。

 

おそらくほかの言語等と文法やなんかがビミョーに違い、
例えば『ElseIf文ってELSEとIFの間にスペース入れるんだっけ?』ってなることが原因かと。

 

 

ググればすぐに出てくるけど、何回もググるのも面倒くさい。

 

そこでこの記事では一度VBAを勉強しようと志したものの

やっぱめんどくさくて挫折した人向けに、コピペ帳を公開します。

 
 
この記事は自分の勉強用も兼ねて定期的にアップデートしていこうかと。。。

■構文系

 

'if文
If (条件文) Then
'命令
 
ElseIf (条件文) Then
'命令
 
Else
'命令
 
End If

 

 

'Forループ
Dim cnt As Integer
Dim stopCount As Integer: stopCount = '←(繰り返す回数-1)の数字を入れる
 
For cnt = 0 To stopCount
'ここに繰り返す命令を記述
 
Next cnt

 

 

'Do Whileループ
Do While '←条件式を記述
'ここに繰り返す命令を記述
 
Loop

 

 

'Select Case文
Dim flag As Integer
flag = '←条件式記入
 
Select Case flag
Case 1
'命令
 
Case 2
'命令
 
Case Else
'命令
 
End Select

 

 

'他のファイル(主にcsv)からコピペ
Dim openFile As String
openFile = '←ファイル名を指定
 
Open openFile For Input As #1
Dim row As Integer
row = 1
 
Dim col As Integer
col = '←CSVの列数を指定
 
Dim buf As String
Do Until EOF(1)
Line Input #1, buf
Range(Cells(row, 1), Cells(row, col)).Value = Split(buf, ",")
row = row + 1
 
Loop
 
Close

 

 

'他のエクセルファイルを開いていろいろ処理する
Dim openFile As String
openFile = '←開くファイルのフルパス記入
 
With Workbooks.Open(openFile)
With Worksheets(1) '←適切なシート番号に書き換えて使用
'命令
 
End With
 
.Close SaveChanges:=False '←openFileへの変更を保存しない場合
'.Close SaveChanges:=True '←openFileへの変更を保存する場合
 
End With

 

 

 

 

■定数系

 

'円周率
Dim pi As Double
pi = 4 * Atn(1)

  

 

'現在のディレクトリを取得
Dim filePath As String
filePath = ThisWorkbook.Path & "\"

 

'myCol列目の最大行数を取得
Dim myCol As Integer: myCol = ’←任意の数字を入れる
Dim maxRow As Integer
maxRow = Cells(Rows.Count, myCol).End(xlUp).Row

 

'myRow行目の最大行数を取得
Dim myRow As Integer: maxRow = '←任意の数字を入れる
Dim maxCol As Integer
maxCol = Cells(myRow, Columns.Count).End(xlLeft).Column

 


Why don't you get crypt currency 'nem' by posting your blog article?

nemlog is blog posting service which has donation feature by crypt currency nem.
nemlog was launched to create environment which can be donated nem among NEMbers via blog articles.
Let's get nem by posting good blogs.

Nem prize event is being held frequently, Please join us on this opportunity!

nemlog registration from here
Register

NEMber who posted this article

こんさんのニセモノです
31123
0