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