マクロ処理を同一フォルダ内の全てのファイルではなく、ファイル選択ダイアログを表示して選択したファイル(複数)にのみ処理を行う場合のコードを紹介します。(今回はファイルを開くのみ)
マクロの流れは以下の通りで、ただダイアログ上で選択したファイルを開くだけです。
1.FileDialogオブジェクトを作成する
(AllowMultiSelectプロパティをTrueに設定して複数ファイル選択を可能にしておく)
2.ダイアログ上で選択したファイルを順に開く
Sub ファイル選択ダイアログ上で複数選択したファイルを開く()
Dim fileDialog As fileDialog
Set fileDialog = Application.fileDialog(msoFileDialogFilePicker)
'複数のファイルを選択できるようにする
fileDialog.AllowMultiSelect = True
'ファイル選択ダイアログを表示
If fileDialog.Show = True Then
'選択されたファイルを順に開く
For Each selectedFile In fileDialog.SelectedItems
Workbooks.Open selectedFile
'開いたファイルへの処理はここに記入する
'次のファイルの処理へ移行する前にファイルを閉じるコードを記入する
Next selectedFile
Else
End If
End Sub
この処理は「フォームに記載した内容をファイルへ反映する」、「ファイルを結合する」などに使用することが多いです。
コメント