ExcelマクロVBA入門 | 第76回.ファイルダイアログ(FileDialog) | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2018-05-27

第76回.ファイルダイアログ(FileDialog)


VBAでファイルを指定するダイアログを扱うには、

すでに紹介したGetOpenFilename、GetSaveAsFilenameがありますが、

さらに、今回紹介する
FileDialogオブジェクト
こちらも使用することができ、便利な機能が提供されています。



FileDialogオブジェクト

Application.FileDialog(fileDialogType)

以下は、
fileDialogTypeに使用する定数です。

msoFileDialogFilePicker ユーザーがファイルを選択できます。
msoFileDialogFolderPicker ユーザーがフォルダーを選択できます。
msoFileDialogOpen ユーザーがファイルを開くことができます。
msoFileDialogSaveAs ユーザーがファイルを保存できます。

この、FileDialogは、

GetOpenFilenameやGetSaveAsFilenameと、だいぶ使い方が違います。

FileDialogは、Application内のオブジェクトです。
使用する場合は、親オブジェクトである、Applicationを指定が必要です。
オブジェクトなので、メンバーであるプロパティ、メソッドが存在します。

FileDialogオブジェクトには、多くのプロパティ、メソッドがあり、
これらを使用して、各種機能を実現します。

名前 説明
メソッド Execute Show メソッドが呼び出された直後のユーザーのアクションを実行します。
Show ファイルのダイアログ ボックスを表示し、[アクション] ボタン (-1) と [キャンセル] ボタン (0) のどちらがクリックされたかを示す長整数型 (Long) の値を返します。
Show メソッドを呼び出すと、ファイルのダイアログ ボックスが閉じられるまで、コードの実行は中断されます。
[ファイルを開く] および [名前を付けて保存] ダイアログ ボックスでは、Show メソッドの直後に Execute メソッドを使用して、ユーザーのアクションを実行します。
プロパティ AllowMultiSelect True を設定すると、ユーザーは、ダイアログ ボックスから複数のファイルを選択できます。
値の取得および設定が可能です。
Application 指定した FileDialog オブジェクトのコンテナー アプリケーションを表す Application オブジェクトを取得します。
このプロパティを Automation オブジェクトと組み合わせて使用すると、そのオブジェクトのコンテナー アプリケーションを取得できます。
値の取得のみ可能です。
ButtonName ファイルのダイアログボックスで、アクションボタンに表示されるテキストを表す文字列型 (String) の値を設定します。
値の取得および設定が可能です。
Creator FileDialog オブジェクトが作成されたアプリケーションを示す 32 ビットの整数を取得します。
値の取得のみ可能です。
DialogType FileDialog オブジェクトが表示するファイルのダイアログ ボックスの種類を表す MsoFileDialogType クラスの定数を取得します。
値の取得のみ可能です。
FilterIndex ファイルのダイアログ ボックスの既定ファイル フィルターを設定します。
長整数型 (Long) の値を使用します。既定フィルターによって、ファイルのダイアログ ボックスを初めて開いたときに表示されるファイルの種類が決まります。
値の取得および設定が可能です。
Filters FileDialogFilters コレクションを取得します。
値の取得のみ可能です。
InitialFileName ファイルのダイアログ ボックスに初期表示されるパスやファイル名を設定します。
文字列型 (String) の値を使用します。
値の取得および設定が可能です。
InitialView ファイルのダイアログ ボックスでのファイルやフォルダーの初期表示を表すMsoFileDialogViewクラスの定数を設定します。
値の取得および設定が可能です。
Item 指定したオブジェクトに関連付けられたテキストを取得します。
値の取得のみ可能です。
Parent FileDialog オブジェクトの Parent オブジェクトを取得します。
値の取得のみ可能です。
SelectedItems FileDialogSelectedItems コレクションを取得します。
このコレクションには、FileDialog オブジェクトの Show メソッドによって表示されたファイルのダイアログ ボックスでユーザーが選択したファイルのパスの一覧が保存されています。
値の取得のみ可能です。
Title FileDialog オブジェクトを使用して表示されるファイルのダイアログ ボックスのタイトルを取得または設定します。
値の取得および設定が可能です。

いろいろな使い方があり、なかなか全てを紹介しきれませんが、

以下に、いくつかの実践例を挙げます。



実践例.

Sub sample1()
  With Application.FileDialog(msoFileDialogFolderPicker)
    .InitialFileName = "D:\user"
    .AllowMultiSelect = False

    .Title = "フォルダの選択"
    If .Show = True Then
      MsgBox "選択フォルダは" & vbLf & .SelectedItems(1)
    End If
  End With
End Sub


フォルダの選択ダイアログを表示し、選択されたフォルダをMsgBoxで表示しています。

初期フォルダも指定しています。


Sub sample2()
  With Application.FileDialog(msoFileDialogOpen)
    .Filters.Clear
    .Filters.Add "Excel2003", "*.xls"
    .Filters.Add "Excelファイル", "*.xlsx"
    .Filters.Add "Excelマクロ有効", "*.xlsm"
    .InitialFileName = "D:\user"
    .AllowMultiSelect = False
    If .Show = True Then
      .Execute
    End If
  End With
End Sub

ファイル選択のダイアログを、拡張子(xls,xlsx,xlsm)で表示し、

選択されたファイルを、Executeで開いています。



VBAでの自動化にあたっては、極力ダイアログを使用せずに、
VBAで自動的に、フォルダ、ファイルを特定できるように決め事を作っておくことが望ましいです。
そのような決め事を作れない場合の手段として、ダイアログを使うようにして下さい。




同じテーマ「マクロVBA入門」の記事

第73回.ページ設定(PageSetup)
第74回.ファイルを開くダイアログ(GetOpenFilename)
第75回.名前を付けて保存ダイアログ(GetSaveAsFilename)
第76回.ファイルダイアログ(FileDialog)
第77回.組み込みダイアログ(Dialogs,xlDialogPrint)
第78回.総合練習問題8
第79回.ファイル操作T(Dir)
第80回.ファイル操作T(その他)
第81回.総合練習問題9
第82回.Rangeのプロパティ(Resize)
第83回.Rangeのプロパティ(Offset)

新着記事 ・・・新着記事一覧を見る

数値範囲で表検索するVLOOKUP近似一致|エクセル関数超技(10月5日)
エクセルVBAでのシート指定方法|VBA技術解説(9月8日)
VBAのクラスとは(Class,Property,Get,Let,Set)|VBA技術解説(8月28日)
VBAこれだけは覚えておきたい必須基本例文10|VBA技術解説(8月22日)
VBAの省略可能な記述について|ExcelマクロVBA技術解説(8月11日)
複数条件判定を行う時のコツ|ExcelマクロVBA技術解説(7月11日)
For Next の使い方いろいろ|VBA技術解説(6月14日)
VBAを定型文で覚えよう|ExcelマクロVBA技術解説(3月26日)
VBAスタンダード試験対策まとめ|MOS VBAエキスパート対策(3月16日)
ユーザーフォームとメニューの操作|MOS VBAエキスパート対策(3月14日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
3.変数とデータ型(Dim)|ExcelマクロVBA入門
4.Range以外の指定方法(Cells,Rows,Columns)|VBA入門
5.RangeとCellsの使い方|ExcelマクロVBA入門
6.マクロって何?VBAって何?|ExcelマクロVBA入門
7.定数と型宣言文字(Const)|ExcelマクロVBA入門
8.とにかく書いて見よう(Sub,End Sub)|VBA入門
9.繰り返し処理(For Next)|ExcelマクロVBA入門
10.ひらがな⇔カタカナの変換|エクセル基本操作



  • >
  • >
  • >
  • ファイルダイアログ(FileDialog)

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。





    このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。

    本文下部へ

    ↑ PAGE TOP