【MOS】【Microsoft Office Excel】【マクロ/VBA】選択した複数のファイルに同じ処理をするVBA例
- 2015/06/23 15:29
- GetOpenFilenameメソッド
- 繰り返し処理
- For Eachステートメント
- Saveメソッド
- Closeメソッド
- Openメソッド
- 57
ファイルを開くダイアログを表示し、選択した複数のファイルに同じ作業を行うときのコードサンプルです。
例として、複数のCSVファイルに
- 開く
- A1セルの値を変更する
- 上書き保存する
- 閉じる
を繰り返して行うものとします。
Sub Open_File_Edit() '==================================================================================== ' 複数のCSVファイルを選択し、同じ作業を繰り返すマクロ '==================================================================================== '//ファイルを開くダイアログを開く selectFileName = _ Application.GetOpenFilename( _ FileFilter:="CSVファイル(*.csv),*.csv", _ FilterIndex:=1, _ Title:="読み込むファイルを選択してください。", _ MultiSelect:=True _ ) '//選択したファイルに対する処理 If IsArray(selectFileName) Then '//全てのファイルで繰り返し処理を行う For Each oneFileName In selectFileName '//選択されたファイルを開く Workbooks.Open oneFileName '//変数を定義 Dim nameCSV As String Dim newCSV As Workbook Dim sh1st As Worksheet nameCSV = Dir(oneFileName) 'ファイル名を取得 Set newCSV = Workbooks(nameCSV) 'ワークブックとして定義 Set sh1st = newCSV.Worksheets(1) '1枚目のワークシートを定義 '//値を変更する sh1st.Range("A1").Value = "セルの値変更テスト" '//ワークブックを保存する On Error Resume Next newCSV.Save '//ワークブックを閉じて次へ Application.DisplayAlerts = False newCSV.Close Application.DisplayAlerts = True Next Else MsgBox ("ファイルを選択しないで終了") End If End Sub