ファイルを開くダイアログボックスの表示
FileDialogプロパティに引数でmsoFileDialogOpenを指定して実行すると、「ファイルを開く」ダイアログボックスが表示されます。
FileDialogプロパティの詳細については「VBAでファイルダイアログを表示する」をご参照ください。このページでは「ファイルを開く」ダイアログボックスに特化して説明します。
ダイアログボックスの操作はコード上では3段階に分けて処理を行うことになります。
- FileDialogプロパティの引数にmsoFileDialogOpenを指定して実行し、FileDialogオブジェクトを取得する。
- FileDialogオブジェクトのShowメソッドで「ファイルを開く」ダイアログボックスを表示する。(その後、ダイアログボックスでの操作を行う。)
- 「開く」ボタンが押された場合はFileDialogオブジェクトのExecuteメソッドで対象のファイルをExcel上で開く処理を実行する。
構文
Application.FileDialog(msoFileDialogOpen) As FileDialog
引数にはMsoFileDialogType列挙型の「ファイルを開く」を表示するためのmsoFileDialogOpen定数を指定します。
使い方
Application.FileDialogプロパティに「ファイルを開く」ダイアログを表示するためのmsoFileDialogOpen定数を指定します。
ここでは特にプロパティの設定はしていませんが、「ファイルを開く」ダイアログの場合はプロパティの設定はほとんど不要です。プロパティをなにも指定しない場合は、ファイルの種類は「すべてのファイル(*.*)」が対象になります。そのため、Excelブックだけでなくテキストファイルなども開いてExcelで表示します。
あとはShowメソッドを使って「ファイルを開く」ダイアログを表示します。ダイアログのアクションボタンを押した場合は-1、キャンセルボタンか×ボタンを押した場合は0が返ります。そのため0が返された場合はそこで処理を終了しています。
最後に「開く」ボタンの処理を行います。存在しないファイル名の場合は「ファイルが見つかりません。ファイル名を確認して再実行してください。」と警告メッセージが表示され、「ファイルを開く」ダイアログに戻されます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub FileDialogOpen() Dim fd As FileDialog Dim ret '// ファイルを開くダイアログを設定 Set fd = Application.FileDialog(msoFileDialogOpen) '// ダイアログを開く ret = fd.Show '// キャンセルボタンまたは×ボタンの場合 If ret = 0 Then '// キャンセル時は処理を抜ける Exit Sub End If '// 対象ファイルを開く fd.Execute End Sub |