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