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

VB&VBA
FROG ふろっぐ
 
  • オプション

    本文印刷

    お気に入りに追加

  • 検索

    Googlewwwjp-ia
     

    Googlewwwjp-ia
     
  • 情報

  • 関連

[VB&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

サンプル

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





Production Japan Import Application. Since 1998