EXCEL、VBA

【VBA】フォルダダイアログを表示する

 

フォルダダイアログを表示する構文

フォルダダイアログを表示する構文です(そのまま使用可能)。

With Application.FileDialog(msoFileDialogFolderPicker)
    .InitialFileName = "C:\"
    If .Show = True Then
        '選択された後の処理を記載。
        '選択されたフォルダは「.SelectedItems(1)」で取得できます
        Debug.Print .SelectedItems(1)
    End If
End With

 

 

フォルダダイアログを表示する関数

上の構文を使ってのフォルダダイアログを表示する関数です。

フォルダダイアログを初期表示するフォルダを引数として指定できるようにしています。

引数 defaultFolder: ダイアログの初期表示フォルダ(デフォルト値:”C:\”)

戻り値:選択したフォルダのパス(文字列)、キャンセルした場合空文字(“”)

Public Function showFolderDialog(Optional ByVal defaultFolder As String = "C:\") As String
        
    With Application.FileDialog(msoFileDialogFolderPicker)
            '初期フォルダ
            .InitialFileName = defaultFolder
        If .Show = True Then
            '選択したフォルダを戻り値に設定
            showFolderDialog = Trim(.SelectedItems(1))
        Else
            showFolderDialog = ""
        End If
    End With
    
End Function

 

実行例

Dim selectFolder As String
'関数呼び出し&選んだフォルダを変数に格納
selectFolder = showFolderDialog("C:\")
Debug.Print selectFolder ' C:\test