【ExcelVBA】FileDialogを活用してファイル操作をもっと便利に
どうも、じゃらしです。
今回もExcelVBAネタです。
以前取り上げた「FileSystemObject」に関連する内容です。
twitpokej.hatenablog.com
twitpokej.hatenablog.com
ファイルのパスを指定する際、変数にパスを直接コーディングしていました。
ですが、ファイルダイアログで指定できたらいいのに、と思う場面ありませんか。(こんなの↓)
そんな時は、ExcelVBAの「FileDialog」を使うことで実現できます。
以下サンプルコード
Sub test() Dim fso As New FileSystemObject 'ファイルダイアログを表示する With Application.FileDialog(msoFileDialogFilePicker) If .Show Then Dim hoge As Variant '選択したファイル1つ1つに対して処理を行う For Each hoge In .SelectedItems Debug.Print fso.GetFile(hoge).Name Next End If End With End Sub
ファイル選択中
実行結果
選択したファイル名を表示してくれます。
ちなみに、ファイルダイアログ上で複数選択した場合にも対応しています。
「FileDialog」で選択したアイテムのパスが配列「SelectedItems」に格納されているので、For Each文を使えば1つ1つに対して処理を行うこともできます。
複数ファイル選択中
実行結果
以上、それではまた。