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



最終更新日:2018-01-30

第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)で表示し、

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



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




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

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

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

セルの操作|MOS VBAエキスパート対策(2月20日)
変数と定数|MOS VBAエキスパート対策(2月17日)
条件付き書式で変更された書式を取得する|VBAサンプル集(2月16日)
VBAの構文|MOS VBAエキスパート対策(2月15日)
増殖した条件付き書式を整理統合する|VBAサンプル集(2月12日)
マクロの記録|MOS VBAエキスパート対策(2月12日)
マクロとVBAの概念|MOS VBAエキスパート対策(2月10日)
MOS VBAエキスパート対策|MOS VBA対策(2月10日)
VBAの配列まとめ(静的配列、動的配列)|VBA技術解説(2月8日)
VBAにおけるピリオドとカンマとスペースの使い方|VBA技術解説(2月7日)

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

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



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

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


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




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

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

    本文下部へ

    ↑ PAGE TOP