VBA閻魔帳
●ファイルを開くにするには? 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 が返されます。
このメソッドを実行することによってカレント ドライブや現在のフォルダが変更される可能性があります。
GetOpenFilename メソッドの使用例
次の使用例は、ファイルを開くときに表示されるダイアログ ボックスで、
ファイルの種類をテキスト ファイルに限定して表示します。ファイル名を選択すると、
そのファイル名がメッセージ ボックスに表示されます。
fileToOpen = Application _ .GetOpenFilename("テキスト ファイル(*.txt), *.txt") If fileToOpen <> False Then MsgBox "選択されたファイル: " & fileToOpen End If
もう一例書いておきます。
参考にしてみてください^^
Dim MyFile As String
Let MyFile = Application.GetOpenFilename _
(Filefilter:="csv形式(xls形式),*.csv;*.xls,すべてのファイル,*.*")