Windows 10 Pro_x64 + Excel2013_x86 VBA GetOpenFilename でファイルを開く

Windows 10 Pro_x64 + Excel2013_x86 VBA GetOpenFilename でファイルを開く

 

DTPickerを使える状態にするとCommonDialogも使えるのだけど

今回はGetOpenFilenameを試す

 

参考にしたサイトはこちら

Application.GetOpenFilename メソッド (Excel)

 

GetOpenFilename( FileFilter , FilterIndex , Title , ButtonText , MultiSelect )

式Application オブジェクトを表す変数。

パラメーター

名前 必須 / 省略可能 データ型 説明
FileFilter 省略可能 バリアント型 (Variant) ファイルの候補を指定する文字列 (ファイル フィルター文字列) を指定します。
FilterIndex 省略可能 バリアント型 (Variant) 引数FileFilter で指定したファイル フィルター文字列の中で、1 から何番目の値を既定値とするかを指定します。この引数を省略するか、ファイル フィルター文字列の数より大きい数値を指定すると、最初のファイル フィルター文字列が既定値となります。
Title 省略可能 バリアント型 (Variant) ダイアログ ボックスのタイトルを指定します。この引数を省略すると "ファイルを開く" になります。
ButtonText 省略可能 バリアント型 (Variant) Macintosh でのみ指定できます。
MultiSelect 省略可能 バリアント型 (Variant) True を指定すると、複数のファイルを選択できます。False を指定すると、1 つのファイルしか選択できません。既定値は False です。

サンプルコード

Private Sub CommandButton1_Click()

    Dim strFile As String

    strFile = GetFileName

 Debug.Print strFile

End Sub

Function GetFileName() As String
'
    Dim FileFilter      As Variant
    '
    ' 定義はしているが今回は未使用
    '
    Dim Title           As Variant
    Dim FilterIndex     As Variant
    Dim MultiSelect     As Variant
    Dim fileToOpen      As Variant
'
    FileFilter = "テキストファイル (*.txt), *.txt,CSVファイル (*.csv), *.csv"
'
    fileToOpen = Application.GetOpenFilename(FileFilter)
'
    If fileToOpen <> False Then
        GetFileName = CStr(fileToOpen)
    Else
        GetFileName = Space(0)
    End If'
End Function