複数CSVファイルの連続処理マクロ
複数の試験データを一覧化したり、さらにデータ処理を加えたい場合に便利です。
図1「Sub ContinuousProcessing()」内の行にカーソルを合わせた状態でVBE「」ボタンを押すと図2の様に開くファイルを選択する画面が表示されます。
Sub ContinuousProcessing()
'宣言
Dim FileNames As Variant
Dim fn As Variant
Dim SP As String
Dim Times As Byte
Times = 0
Dim SheetNames
Dim row As Integer
'ファイル名取得
FileNames = Application.GetOpenFilename _
If VarType(FileNames) = vbBoolean Then Exit Sub
'アクティブファイル確認
SP = ActiveWorkbook.Name
If ActiveWorkbook.Name = "まとめファイル.xls" Then
MsgBox ("まとめファイルを閉じて下さい")
Exit Sub
'ファイル新規作成
Else: Workbooks.Add
'ファイル名をつけて保存
ActiveWorkbook.SaveAs Filename:= _
CreateObject("WScript.Shell").SpecialFolders.Item("Desktop") & "\まとめファイル.xls", FileFormat:=xlNormal _
, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
End If
For Each fn In FileNames
Times = Times + 1
'ファイルオープン
Workbooks.OpenText Filename:=fn
'ファイル内容の確認
If Range("A1") = "" Then
Exit Sub
End If
SheetNames = ActiveSheet.Name
fns = fn
'並び替え
row = Range("A1").End(xlDown).row 'データコピー
Range(Cells(1, 1), Cells(row, 1)).Select
Selection.Copy
Cells(2, Times).Select
ActiveSheet.Paste
Cells(1, Times) = SheetNames '系列名貼り付け
ActiveWindow.Close Savechanges:=False
Next fn
'上書き保存
ActiveWorkbook.Save
End Sub
図1:プログラムの内容