Hiko.Blog Excel VBA活用術

「Excel VBAで仕事を効率化!初心者でもできる自動化のコツ」

MENU

フォルダー選択

生徒:先生、フォルダー選択のコードって何ですか?

先生:これは、フォルダーを選ぶためのダイアログを表示するコードやで。ユーザーがフォルダーを選んだら、そのパスを取得するんや。

生徒:どんな仕組みになってるんですか?

先生:まず、FileDialogっていう機能を使って、フォルダーを選ぶダイアログを表示するんや。msoFileDialogFolderPickerってのは、フォルダー選択用のダイアログを指定するための設定やね。

生徒:そのダイアログはどうやって表示するんですか?

先生dialog.Showでダイアログを表示して、ユーザーがフォルダーを選ぶと、そのパスがdialog.SelectedItems(1)に格納されるんや。

生徒:選ばなかったらどうなるんですか?

先生:選ばなかった場合、Elseの部分が実行されて、「フォルダーが選択されませんでした。」ってメッセージが表示されるんや。

生徒:なるほど!それで、選ばれたフォルダーはどう使うんですか?

先生:選ばれたフォルダーのパスは、folderPathに格納されて、その後の処理で使えるようになるんや。

生徒:じゃあ、これでフォルダーを簡単に選べるってわけですね!

先生:そうやで!選んだフォルダーのパスを使って、色々な操作ができるんや。

 

Sub フォルダー選択()
    Dim folderPath As String
    Dim dialog As FileDialog
    Dim initialFolder As String
    
    ' 初期選択フォルダーを設定
    initialFolder = "C:\Users\YourUsername\Documents" ' 任意のフォルダーパスに変更
    
    ' フォルダー選択のダイアログを作成
    Set dialog = Application.FileDialog(msoFileDialogFolderPicker)
    
    ' 初期フォルダーを設定
    dialog.InitialFileName = initialFolder
    
    ' ダイアログを表示
    If dialog.Show = -1 Then
        ' ユーザーがフォルダーを選択した場合、そのパスを取得
        folderPath = dialog.SelectedItems(1)
        MsgBox "選択されたフォルダー: " & folderPath
    Else
        MsgBox "フォルダーが選択されませんでした。"
    End If
End Sub