VBAでダイアログボックスを表示し、任意のファイルを選択して開く方法です。
GetOpenFinenameメソッドの概要
GetOpenFinenameメソッドは、実際にはダイアログボックスを表示し任意のファイルをユーザーに選択させるものです。
このメソッドでファイルを選択し、ファイル名を取得したのちにWorkbooks.openメソッド等でファイルを開きます。
《書式》
Application.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
FileFilterは、ファイルの候補を指定する文字列を指定します。FileFilterの指定は次のようにします。
- FileFilterはファイルの説明とファイルの拡張子のペアで構成される。
- 記入する順番はファイルの説明、ファイルの拡張子の順に記入する。
- ファイルの拡張子は*.拡張子で指定する。
- ファイルの説明とファイルの拡張子はカンマ(,)でつなぐ。
- 複数指定する場合は、カンマ(,)でつないで1.と2.の規則で続ける。
- 全体の最初と最後をダブルクオーテーションマーク(”)で囲む
例えば拡張子がxlsxのExcelファイルを指定する場合は、“Excelファイルを選択,*.xlsx”と記入します。
ひとつのFileFilterに複数の拡張子を指定する場合は、セミコロン(;)で指定する拡張子を繋げる。
例)xlsxとxlsmのExcelファイルを一つのFileFilterで指定する場合は、“Excelファイルを選択,*.xlsx;*.xlsm”と記入します。
FilterIndexは、FileFilterで指定したファイルフィルター文字列の中で、1から何番目の値を既定値とするかを指定します。
省略若しくは、フィルター数よりも大きな数値を入力すると最初のファイルフィルター文字列が既定値となります。
Titleは、ダイアログボックスのタイトルを指定します。省略時は、タイトルが”ファイルを開く”になります。
ButtonTextは、Macintoshのみで指定可能です。
MultiSelectは、ファイルの同時選択可能数を決めます。
- True:複数選択可能
- False or 省略:1つのファイルのみ選択可能
GetOpenFinenameメソッドを利用してファイルを開く
実際にファイルを開くには、下記のような流れで開きます。(Excelブックで開く場合です。)
- GetOpeFilenameメソッドでファイル名(パスを含む)を取得する
- Workbooks.openメソッドでファイルを開く
Sub OpenFile()'Workbooks.openメソッドを利用
Dim fiName As String
fiName = Application.GetOpenFilename("Excelファイルを選択,*.xlsx;*.xlsm")
Workbooks.Open Filename:=fiName
End Sub
Workbooks.openメソッドについては、下記記事を参照してください。
また、Openステートメントを利用することもできます。
Sub OpenFile_2() 'Openステートメントを利用
Dim fiName As String
fiName = Application.GetOpenFilename("Excelファイルを選択,*.xlsx;*.xlsm")
Open fiName For Input As #1
End Sub
Openステートメントについては、下記記事を参照してください。
今回はここまでです。
コメント