フォルダ選択ダイアログを表示する|VBA

      2018/12/28

Shellを使って、フォルダ選択ダイアログを表示する方法です。
BrowseForFolderの第4引数(vRootFolder)にパスを指定すると、そのフォルダ配下のみ選択可能になります。その際、末尾に\が必要です。
例)

shell.BrowseForFolder(0, "保存先フォルダを選んでください", &H1 + &H10, "C:\temp\")

第3引数は、ドキュメント参照。
VBAでは、&を付けてHEX値を書きます。

' フォルダ選択ダイアログを表示する.
Function SelectSaveFolder(ByVal current As String) As String
    Dim objShell
    Dim objFolder

    Set objShell = CreateObject("shell.application")
    Set objFolder = objShell.BrowseForFolder(0, "保存先フォルダを選んでください", &H1 + &H10)
    If objFolder Is Nothing Then
        SelectSaveFolder = ""
    Else
        SelectSaveFolder = objFolder.Items.Item.Path
    End If
End Function

BrowseForFolder

 - VBA