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
|
|
Option Explicit
Function GetFilename() As String
'**********************************************
'ファイルを開くダイアログボックスを表示取得
'**********************************************
'選択なしの場合は空白が返る
Dim tmp As Variant, 種類 As String, タイトル As String
種類 = "JPG(*.jpg),*.jpg"
タイトル = "JPG画像を選択"
tmp = Application.GetOpenFilename(FileFilter:=種類, FilterIndex:=1, Title:=タイトル)
If tmp = False Then
MsgBox "ファイルは選択されませんでした!", vbCritical
GetFilename = ""
Exit Function
Else
GetFilename = tmp
End If
End Function
Private Sub test()
MsgBox GetFilename
End Sub
|