Variant = Application.GetOpenFilename(FileFilter, FilterIndex, Title, ButtonText, MultiSelect)
ダイアログボックスを表示してユーザーに選ばせて任意のExcelブック等のファイルを開く時には Application.GetOpenFilenameメソッドを使用します。
例)FileFilterを"Excel ファイル"で拡張子"*.xls*"で指定
ダイアログボックスを表示してユーザーに選ばせて任意のExcelブック等のファイルを開く時には Application.GetOpenFilenameメソッドを使用します。
名前 | 説明 | 備考 |
---|---|---|
FileFilter | ファイルの候補を指定する文字列 | 省略→すべてのファイル |
FilterIndex | FileFilterに複数指定した場合に使用 | 省略→最初のFilter |
Title | ダイアログボックスのタイトル | 省略→"ファイルを開く" |
ButtonText | MAC用 | 省略可 |
MultiSelect | 複数のファイルを選択可否 | 省略→False(不可) |
例)FileFilterを"Excel ファイル"で拡張子"*.xls*"で指定
Sub SampleFileOpen() Dim fileOpen As Variant Dim wbOpen As Workbook fileOpen = Application.GetOpenFilename("Excel ファイル (*.xls*),*.xls*") 'キャンセルボタンを押した場合の処理 If fileOpen = "False" Then Exit Sub End If 'ファイルを開く Workbooks.Open (fileOpen) '変数に入れてみる Set wbOpen = Workbooks(Dir(fileOpen, vbNormal)) MsgBox wbOpen.Name End Sub
キャンセルボタンを押した場合はApplication.GetOpenFilenameの戻り値が"False"を返すのでそこを利用してExit Subで 処理を逃がしています。
変数に入れる処理はDir関数を使って fileOpenのファイルパス+ファイル名からファイル名のみを取得しています。
読み取り専用で開く場合は
Workbooks.Open (fileOpen), ReadOnly:=Trueとします。
参照:Workbooks.Openメソッド
引数イメージ