VBAのGetOpenFilenameメソッド
こちらでは、エクセルVBAのGetOpenFilenameメソッドの解説になります。
メソッドとは、オブジェクトを操作する命令文のことでオブジェクトの動作になります。 メソッドを利用するにはオブジェクト名とメソッド名の間に「.(ピリオド)」で結んで記述します。
オブジェクト名.メソッド名
目次
GetOpenFilenameメソッド
GetOpenFilenameメソッドは、ユーザーからファイル名を取得するために、[ファイルを開く] ダイアログ ボックスを表示します。ダイアログ ボックスで指定したファイルは、実際には開かれません。
expression.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
expression 必ず指定します。Application オブジェクトを返すオブジェクト式を指定します。
FileFilter 省略可能です。バリアント型 (Variant) の値を使用します。ファイルの候補を指定する文字列 (ファイル フィルタ文字列) を指定します。
ファイル フィルタ文字列とワイルドカードのペアを、必要な数だけ指定します。ファイル フィルタ文字列とワイルドカードはカンマ (,) で区切り、各ペアもカンマで区切って指定します。各ペアは、[ファイルの種類] ボックスのリストに表示されます。例えば、テキストとアドインの 2 つのファイル フィルタの指定は次のようになります。"テキスト ファイル (*.txt),*.txt,アドイン ファイル (*.xla),*.xla"
1 つのファイル フィルタ文字列に複数のワイルドカードを対応させるには、次のように各ワイルドカードをセミコロン (;) で区切ります。"Visual Basic ファイル (*.bas;*.txt),*.bas;*.txt"
この引数を省略すると、"すべてのファイル (*.*),*.*" を指定したことになります。
FilterIndex 省略可能です。バリアント型 (Variant) の値を使用します。引数 FileFilter で指定したファイル フィルタ文字列の中で、1 から何番目の値を既定値とするかを指定します。この引数を省略するか、引数 FileFilter に含まれるファイル フィルタ文字列の数より大きい数値を指定すると、最初のファイル フィルタ文字列が既定値となります。
Title 省略可能です。バリアント型 (Variant) の値を使用します。ダイアログ ボックスのタイトルを指定します。この引数を省略すると "ファイルを開く" になります。
ButtonText 省略可能です。バリアント型 (Variant) の値を使用します。Macintosh でのみ指定できます。
MultiSelect 省略可能です。バリアント型 (Variant) の値を使用します。True を指定すると、複数のファイルを選択できます。False を指定すると、1 つのファイルしか選択できません。既定値は False です。
GetOpenFilename メソッドは、ユーザーによって選択、または入力されたファイルの名前とパス名を返します。引数 MultiSelect が True の場合は、選択されたファイルの名前の配列が返されます。選択されたファイルが 1 つでも、配列として返されます。入力が取り消された場合には False が返されます。
このメソッドを実行することによって、カレント ドライブやカレント フォルダが変更される可能性があります。
次の使用例は、[ファイルを開く] ダイアログ ボックスを、ファイルの種類をテキスト ファイルに限定して表示します。ファイル名を選択すると、そのファイル名がメッセージ ボックスに表示されます。
fileToOpen = Application _
.GetOpenFilename("テキスト ファイル (*.txt), *.txt")
If fileToOpen <> False Then
MsgBox "選択されたファイル : " & fileToOpen
End If
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。