【VBA】ダイアログでフォルダパスを取得する方法(FileDialog)
今回はダイアログを使ってフォルダパスを取得する方法を紹介します。
ファイルを選択させるのならばGetOpenFilename関数で良いのですが、この関数だとフォルダを選択させることはできません。
そこで、フォルダを選択させる方法をサンプルコードとともに紹介したいと思います。
コピペで流用できるようにしたので、ぜひ活用してみてください。
ダイアログでフォルダを選択させる方法(FileDialog)
Sub Sample1()
Dim strFldrPath As String
With Application.FileDialog(msoFileDialogFolderPicker)
'キャンセルされるとShowメソッドはFalseを返す
If .Show = True Then
strFldrPath = .SelectedItems(1)
Else
MsgBox "キャンセルされました"
Exit Sub
End If
End With
MsgBox "フォルダパス:" & strFldrPath
End Sub
このプログラムを実行すると画像のようにフォルダを選択するダイアログが表示されます。
そして、選択したフォルダのフルパスがメッセージボックスで表示されます。
またフォルダを選択せず、キャンセルボタンを押したときには処理を途中終了するようにしています。
別の種類のダイアログを表示させる方法
今回はApplication.FileDialogの引数に「msoFileDialogFolderPicker」を使用しました。
この引数を使うとフォルダを選択するダイアログが表示されます。
他にも別の引数を入れると、違う種類のダイアログを表示できるので下表をご覧ください。
名前 | 値 | 説明 |
---|---|---|
msoFileDialogFilePicker | 3 | [ファイル ピッカー ] ダイアログ ボックス |
msoFileDialogFolderPicker | 4 | [フォルダー ピッカー ] ダイアログ ボックス |
msoFileDialogOpen | 1 | [ 開く] ダイアログ ボックス |
msoFileDialogSaveAs | 2 | [名前を付けて保存] ダイアログ ボックス |