ユーザーに入力ファイルや出力ファイルなどを選択させるにはファイルダイアログオブジェクトを使用します。ファイルダイアログオブジェクトを使用すると、ユーザーによる入出力ファイルの選択以外にも、フォルダの選択とファイルのオープンが可能になります。
ファイルダイアログの表示イメージ
『ファイルを選択する』(msoFileDialogFilePicker)の表示イメージ
ファイルダイアログオブジェクトでできること
- ユーザーによるファイルの選択
パソコン画面上にファイル選択ダイアログを表示し、ユーザーによるファイル選択が可能になります。 選択されたファイルはプログラム上でフルパスとして受け取ることができます。 ファイル選択ダイアログにおけるファイルの複数選択や、ファイルフィルタなどはファイルダイアログオブジェクトのプロパティにより設定が可能です。 - ユーザーによるフォルダの選択
パソコン画面上にフォルダ選択ダイアログを表示し、ユーザーによるフォルダ選択が可能になります。 選択されたフォルダはプログラム上でフルパスとして受け取ることができます。 - ユーザーによるファイルのオープン
パソコン画面上にファイル選択ダイアログを表示し、ユーザーによるファイルのオープンが可能になります。 ファイル選択ダイアログにおけるファイルの複数選択や、ファイルフィルタなどはファイルダイアログオブジェクトのプロパティにより設定が可能です。 - ユーザーによる出力(保存)ファイルの選択
パソコン画面上にファイル選択ダイアログを表示し、ユーザーによるファイル(アクティブワークブック)の保存が可能になります。 ファイル選択ダイアログにおけるファイルフィルタなどはファイルダイアログオブジェクトのプロパティにより設定が可能です。
FileDialogオブジェクトの使用方法
引数名 | 省略 | 説明 |
---|---|---|
fileDialogType | × | 必須入力です。以下 MsoFileDialogType クラスの定数をいずれか1つ指定します。
msoFileDialogFilePicker ⇒ ユーザーがファイルを選択することができます。 msoFileDialogFolderPicker ⇒ ユーザーがフォルダを選択することができます。 msoFileDialogOpen ⇒ ユーザーがファイルを開くことができます。 msoFileDialogSaveAs ⇒ ユーザーがファイルを保存することができます。 |
具体的な使用例は次のページ以降で説明します。
(以下のサイト内リンクはその具体的な使用例へのリンクとなります。)
ファイルダイアログオブジェクト – 『ファイルを選択する』
ファイルダイアログオブジェクト – 『フォルダを選択する』
ファイルダイアログオブジェクト – 『エクセルファイルを開く』
ファイルダイアログオブジェクト – 『エクセルファイルを保存する』
FileDialogオブジェクトのプロパティ・メソッド
ファイダイアログ”オブジェクト”というからには、このオブジェクトを操作するプロパティとメソッドがあります。以下に主なプロパティとメソッドの使用方法について解説します。
※以下、ファイルダイアログオブジェクトを fdo と記述します。
fdo.AllowMultiSelect プロパティ
このプロパティに True を設定すると、ユーザーはファイルダイアログから複数のファイルを選択することが可能になります。このプロパティの設定値はファイルダイアログタイプが 『ファイルを選択する』(msoFileDialogFilePicker)か『ファイルを開く』(msoFileDialogOpen)の場合に意味を持ちます。
※ファイルダイアログ上でファイルを複数選択するには、Shift または Ctrl を押した状態でファイルをクリックします。
fdo.InitialFileName プロパティ
ファイルダイアログに初期表示されるフォルダやファイルパスを設定します。省略するとカレントフォルダが初期表示されます。ファイルパス内のファイル名にはワイルドカードを指定できます。ワイルドカードを指定すると、そのファイル名パターンに合致したファイルが初期表示されます。フォルダパスを設定するとそのフォルダ内のファイルがすべて初期表示されます。この場合、フォルダパスはパス区切り文字で終わるように設定します。パス区切り文字で終わっていないとファイル名欄にフォルダ名が表示されてしまいます。
fdo.Filters プロパティ
このFilters プロパティはファイルダイアログの Filters コレクションを取得します。Filters コレクションの配下にはさらにプロパティとメソッドがあり、よく使うのは以下のメソッド2つです。
Filers.Clear
ファイルフィルタをクリアします。
前の設定値は残ってしまうので、フィルタを追加する前には必ずクリアします。
Filers.Add ( Desctiption, Extensions [, Position] )
ファイルフィルタを追加します。引数 Position を省略すると、追加した順にフィルタが表示されます。
引数名 | 省略 | 説明 |
---|---|---|
Desctiption | × | フィルタ名を表す文字列式を指定します。 |
Extensions | × | フィルタを表す文字列式を指定します。 複数のフィルタを指定したい場合は、セミコロン(;)で区切って指定します。 |
Position | ○ | フィルタの位置を整数値で指定します。 1 を指定すると、そのフィルタが一番上に表示されます。 |
fdo.SelectedItems プロパティ
ファイルダイアログ上で選択されたアイテム(ファイルパスやフォルダパス)を表す、FileDialogSelectedItems コレクションを取得します。このコレクションに添字を指定することで個々のアイテムを取得することができます。選択されたアイテムの数を知るには、このコレクション配下の Count プロパティを参照します。
fdo.Show メソッド
ファイルダイアログを表示し、アクションボタン(値:-1)とキャンセルボタン(値:0)のどちらが押されたかを返します。
fdo.Excute メソッド
ファイルダイアログタイプが『ファイルを開く』(msoFileDialogOpen)か、『ファイルを保存する』(msoFileDialogSaveAs)の場合、Show メソッドの直後にこの Exute メソッドを実行する必要があります。このメソッドを実行することで、ユーザーのアクション(ファイルを開く、または、保存する)を実行します。
具体的な使用例は次のページ以降で説明します。
(以下のサイト内リンクはその具体的な使用例へのリンクとなります。)
ファイルダイアログオブジェクト – 『ファイルを選択する』
ファイルダイアログオブジェクト – 『フォルダを選択する』
ファイルダイアログオブジェクト – 『エクセルファイルを開く』
ファイルダイアログオブジェクト – 『エクセルファイルを保存する』