ダイアログ ファイルを開くダイアログボックスを表示取得

※より実装に近く表示させる為、コードの改行を避けています。スマホ等で閲覧される際は向きを変えてご覧ください。

※実装するバージョンによってはバージョンアップの仕様により動作しないコードもあります。実装には動作確認の上ご使用下さい。

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

 

2000年01月01日|[VBサンプルコード]:[ダイアログ]