Excel VBA  フォルダ選択ダイアログはユーザー操作でフォルダ選択に使用

 

Excel VBA フォルダ選択ダイアログは、ユーザーに特定のフォルダを選択させるために使用します。ファイル保存やファイル読み込みの際に、ユーザーが保存先や読み込み先のフォルダを指定する場面で便利です。具体的な使い方や、注意点やサンプルコードを紹介します。

 

日常業務でExcelを多用し、手動作業を減らしたいと考えている方へ
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事

 

Excel VBA フォルダ選択ダイアログの利用

以下のようなシーンで利用されます。

1.ファイルの保存先指定
レポートやデータファイルの保存先フォルダを指定させたいとき。

2.ファイルの読み込み元指定
CSVやテキストファイルなどの一括インポートを行うフォルダを指定する。

3.一括処理対象フォルダの選定
選択したフォルダ内の全ファイルに対して処理を実行したい。

使い方

Application.FileDialog(msoFileDialogFolderPicker)を使って、フォルダ選択ダイアログを表示し、選択されたフォルダのパスを取得します。

 

ポイント

1.キャンセル処理
ユーザーがダイアログでキャンセルした場合、処理をどうするか決めておく必要があります。

2.初期フォルダの設定
必要に応じてダイアログが開いた際の初期フォルダを指定できます。

 

Excel VBA フォルダ選択ダイアログのサンプルコード

基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事

フォルダ選択ダイアログを開き、選択されたフォルダのパスをメッセージボックスで表示する例です。

Option Explicit

Sub フォルダ選択ダイアログ()
    Dim フォルダダイアログ As FileDialog
    Dim 選択フォルダ As String
    
    ' フォルダ選択ダイアログを作成
    Set フォルダダイアログ = Application.FileDialog(msoFileDialogFolderPicker)
    
    ' ダイアログの初期フォルダ設定(オプション)
    フォルダダイアログ.InitialFileName = "C:\"
    
    ' ダイアログ表示し、フォルダが選択されたか確認
    If フォルダダイアログ.Show = -1 Then
        ' 選択されたフォルダパスを取得
        選択フォルダ = フォルダダイアログ.SelectedItems(1)
        MsgBox "選択されたフォルダ: " & 選択フォルダ
    Else
        MsgBox "フォルダ選択がキャンセルされました"
    End If
End Sub

1. Application.FileDialog(msoFileDialogFolderPicker)
フォルダ選択ダイアログを生成し、フォルダを選択させます。

2. 初期フォルダの設定
InitialFileNameでフォルダダイアログが最初に表示するフォルダを設定できます(例:`C:\`)

3. フォルダが選択されたか確認
ユーザーがフォルダを選択した場合、SelectedItems(1)で選択されたフォルダのパスを取得します。

4. キャンセル処理
ユーザーが選択をキャンセルした場合、Else 内の処理が実行されます。

フォルダ選択ダイアログは、ユーザーに特定のフォルダを選ばせる場面でとても便利です。レポート保存やファイル処理の対象フォルダを指定させるなど、業務でのファイル操作を自動化する際に役立ちます。

Excel VBAで自動化するコードのベースを習得したい方におすすめ!

VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。

ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。


ExcelVBAエキスパートスタンダード

ExcelVBAの開発を仕事にする人が対象の問題集です。

 

Excel  VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。