VBA:ダイアログを使った取込みファイルやフォルダの選択


  • 取込むファイルの指定をしたい。
  • 複数ファイルを一括で選択して取込みたい。
  • 一括取り込みのフォルダを指定したい。
  • 保存先フォルダを指定したい。
  • VBAでツールを作る際にこんな感じの要望はよくあります。
    そこでここでは取込みファイルやフォルダの選択方法について説明してきます。
    ダイアログの初期フォルダの設定方法は記事の最後に記載しています。

    ◆事前準備

     ダイアログを使うには「FileDialogオブジェクト」を使うのですが、有効になっていない場合はエラーになります。
     そのためVBAの「参照設定」で以下のオブジェクトライブラリの参照を有効にしておく必要があります。

  • Microsoft Office 15.0 Object Library
  • (Officeのバージョンによって数値(15.0など)は変わります。)

     有効にする方法は、VBAの上のメニューにある「ツール」→「参照設定」を開き、対象を探し、左のチェックボックスにチェックを入れます。
    ・以下の画面が表示されるので、対象を探します。

    ・設定をしていない場合は以下のエラーが出ます。



    ◆ダイアログを使ったファイルの指定

    ファイルの選択については以下の記事に複数・単独ファイルでまとめて書きました。

    VBA:ダイアログを使った複数or単独ファイルの選択方法

    【VBA】ダイアログを使った複数or単独ファイルの選択方法

    ◆ダイアログを使ったフォルダの指定

    ダイアログを使ってファイル指定する際には「FileDialog(msoFileDialogFolderPicker)」を使います。
    ここではファイルを選択するとFunctionプロシージャ(ここではSelectFolderDialog)に選択したパスを返し、キャンセルをすると空白のままで返します。

    ◆ダイアログの初期フォルダの設定方法

    上記のサンプルコードの以下の部分(20行目ぐらい)で設定しています。
    「CreateObject(“WScript.Shell”).SpecialFolders(“Desktop”) 」となっている箇所を、任意のパスに変更すればそのパスが最初のフォルダとして開きます。

    任意の場所に変更したい場合は以下のようにすれば任意の場所が最初に開きます。

    おすすめ