このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】ダイアログでフォルダパスを取得する方法(FileDialog)

2024年8月6日

今回はダイアログを使ってフォルダパスを取得する方法を紹介します。

ファイルを選択させるのならばGetOpenFilename関数で良いのですが、この関数だとフォルダを選択させることはできません。

そこで、フォルダを選択させる方法をサンプルコードとともに紹介したいと思います。

コピペで流用できるようにしたので、ぜひ活用してみてください。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

ダイアログでフォルダを選択させる方法(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」を使用しました。

この引数を使うとフォルダを選択するダイアログが表示されます。

他にも別の引数を入れると、違う種類のダイアログを表示できるので下表をご覧ください。

名前説明
msoFileDialogFilePicker3[ファイル ピッカー ] ダイアログ ボックス
msoFileDialogFolderPicker4[フォルダー ピッカー ] ダイアログ ボックス
msoFileDialogOpen1[ 開く] ダイアログ ボックス
msoFileDialogSaveAs2[名前を付けて保存] ダイアログ ボックス
MsoFileDialogType

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

created by Rinker
技術評論社
¥3,608 (2024/10/29 14:16:48時点 Amazon調べ-詳細)
VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい