🗺️

【VBA】フォルダを選択してフォルダパスを返すコード

2023/07/02に公開

複数のエクセルファイルを選択して色々な処理をするとき、フォルダを選択してフォルダパスを変数に入れたいところです。

Function SelectFolder() As String
    
    Dim fileDialog As fileDialog
    
    ' FileDialogオブジェクトの初期化
    Set fileDialog = Application.fileDialog(msoFileDialogFolderPicker)
    
    With fileDialog
        ' ダイアログのタイトル設定
        .Title = "フォルダを選択してください"
        
        ' ファイル選択ダイアログの表示
        If .Show = -1 Then
            SelectFolder = .SelectedItems(1)
        End If
    End With

    ' キャンセルをクリックした場合メッセージを表示
    If SelectFolder = "" Then
        MsgBox "フォルダを選択してください"
    End If
    
    Set fileDialog = Nothing
    
End Function

使い方

Sub test()
    
    Dim folderPath As String
    folderPath = SelectFolder
    
    MsgBox folderPath
    
End Sub

このコードではMsgBoxに表示させているだけですので、ここをしたい処理に書き換えてください。

Discussion