GetOpenFilenameメソッドは、ユーザーからパス名とファイル名を取得するために、
[ファイルを開く]ダイアログボックスを表示します。
サンプルマクロでは、[ファイルを開く]ダイアログボックスでファイルの種類を
Excelファイルに指定して、選択されたファイル名をイミディエイトウィンドウに
出力します。
複数選択された場合は全てのファイル名を出力し、[キャンセル]ボタンがクリック
された場合は「False」が出力されます。
ダイアログボックスで指定したファイルは、実際には開かれません。
Sub Sample()
Dim aFile As Variant
Dim i As Integer
aFile = Application.GetOpenFilename _
("Excelファイル (*.xls), *.xls", , , , True)
If IsArray(aFile) Then
For i = 1 To UBound(aFile)
Debug.Print i & ":", aFile(i)
Next i
Else
Debug.Print aFile
End If
End Sub
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です。
|