FileDialogオブジェクト

FileDialogオブジェクトについての解説になります。

目次

FileDialogオブジェクトとは

FileDialogオブジェクトは、Office アプリケーションでファイルを開いたり保存する標準的なダイアログ ボックスの機能に類似する機能を提供します。開発したソリューションでは、これらの機能を使って、ファイルやフォルダを簡単に指定することができます。

FileDialog オブジェクトを取得するには、FileDialog プロパティを使用します。FileDialog プロパティは、各 Office アプリケーションの Application オブジェクト内にあります。このプロパティは、DialogType のみを引数とし、プロパティで取得する FileDialog オブジェクトの種類を指定します。FileDialog オブジェクトには、次の 4 つの種類があります。

[ファイルを開く] ダイアログ ボックス - ユーザーは 1 つ以上のファイルを選択し、Execute メソッドを使用して、ホスト アプリケーションでそのファイルを開くことができます。 [名前を付けて保存] ダイアログ ボックス - ユーザーは 1 つのファイルを選択し、Execute メソッドを使用して、そのファイルを保存することができます。 [参照] ダイアログ ボックス (ファイル参照) - ユーザーは 1 つ以上のファイルを選択し、選択したファイルのパスが FileDialogSelectedItems コレクションに与えられます。 [参照] ダイアログ ボックス (フォルダ参照) - ユーザーは 1 つのパスを選択し、選択したパスが FileDialogSelectedItems コレクションに与えられます。 FileDialog オブジェクトのインスタンスは、各ホスト アプリケーションに 1 つのみインスタンス化することができます。したがって、複数の FileDialog オブジェクトを作成した場合でも、FileDialog オブジェクトの多くのプロパティは変更されないまま使用されます。ダイアログ ボックスを表示する前に、すべてのプロパティが目的に応じて適切に設定されているかどうかを確認します。

FileDialog オブジェクトを使用してファイルのダイアログ ボックスを表示するためには、Show メソッドを使用する必要があります。ダイアログ ボックス表示後は、ユーザーがダイアログ ボックスを閉じるまで、コードの実行は中断されます。次の使用例は、[参照] ダイアログ ボックスを作成して表示し、選択されたファイルをメッセージ ボックスに表示します。


Sub Main()

    'FileDialog オブジェクトの変数を宣言します。
    Dim fd As FileDialog

    '[参照] ダイアログ ボックスの FileDialog オブジェクトを作成します。
    Set fd = Application.FileDialog(msoFileDialogFilePicker)

    '選択した各アイテムのパスを保存する
    '変数を宣言します。パスは文字列型 (String) ですが、
    '変数はバリアント型 (Variant) である必要があります。Each...Next ルーチンは、
    'バリアント型 (Variant) およびオブジェクト型 (Object) の値でのみ動作します。
    Dim vrtSelectedItem As Variant

    'With...End With ブロックを使用して、FileDialog オブジェクトを参照します。
    With fd

        'Show メソッドを使用して [参照] ダイアログ ボックスを表示し、ユーザーのアクションを取得します。
        'ユーザーがアクション ボタンをクリックしました。
        If .Show = -1 Then

            'FileDialogSelectedItems コレクション内のすべての文字列を調べます。
            For Each vrtSelectedItem In .SelectedItems

                'vrtSelectedItem は、選択した各アイテムのパスを含む文字列型 (String) の値です。
                'このパスで使用したいファイルの I/O 関数があれば、使用することができます。
                'この使用例では、単にメッセージ ボックスにパスを表示します。
                MsgBox "パス :  " & vrtSelectedItem

            Next vrtSelectedItem
        'ユーザーが [キャンセル] をクリックしました。
        Else
        End If
    End With

    'オブジェクトの変数に Nothing を設定します。
    Set fd = Nothing

End Sub

シート見出しの色を設定するサンプルコード

こちらでは、シート見出しの色を設定するマクロになります。


Sub sample()

    Sheets("Sheet1").Tab.ColorIndex = 3

End Sub

実行結果

解説

こちらのマクロは、FileDialogオブジェクトのColorIndexプロパティを利用しています。

FileDialogオブジェクトの親コレクション一覧

親コレクション名内容
Chartコレクションブック内のグラフを表します。ChartObject コレクションに含まれている埋め込みグラフか、独立したグラフ シートのどちらかのグラフです。
Worksheetコレクション

FileDialogオブジェクトのプロパティ一覧

  • FileDialogオブジェクト(ColorIndexプロパティ)のプロパティ
Excel VBAのプログラミングのツボとコツがゼッタイにわかる本―最初からそう教えてくれればいいのに!Excel2007/2003対応

立山 秀利

プログラミング初心者でもわかりやすいExcel VBAの入門書です。本書では、他言語でのプログラミング経験がない初心者でもVBAプログラミングが理解できるよう、重要な機能に焦点をしぼって、VBAのポイントとなるコレクションや演算子、条件分岐、ループ、変数、関数などにをやさしく解説しました。「計算ドリル」「販売管理」といったアプリケーションを作りながら、楽しくVBAを学べます。

ExcelのVBAについてのQ&A掲示板

↑ExcelのVBA全般について分からない事があればこちらの掲示板よりご質問ください^^

VBAのInternetExplorer操作入門

↑ExcelのVBAをマスターできたら、エクセルVBAのIE(InternetExplorer)操作にも挑戦してみてください^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

エクセルVBAのステートメント

こちらでは、エクセルVBAの事例で利用したステートメントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのオブジェクト

こちらでは、エクセルVBAの事例で利用したオブジェクトをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのプロパティ

こちらでは、エクセルVBAの事例で利用したオブジェクトのプロパティをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのメソッド

こちらでは、エクセルVBAの事例で利用したオブジェクトのメソッドをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。

エクセルVBAのイベント

こちらでは、エクセルVBAの事例で利用したオブジェクトのイベントをまとめたものです。ExcelのVBAには様々な機能が用意されていますので一度ご確認ください。