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