ファイル参照ダイアログボックスの表示
FileDialogプロパティに引数でmsoFileDialogFilePickerを指定して実行すると、「ファイル参照」ダイアログボックスが表示されます。
FileDialogプロパティの詳細については「VBAでファイルダイアログを表示する」をご参照ください。このページでは「ファイル参照」ダイアログボックスに特化して説明します。
ダイアログボックスの操作はコード上では3段階に分けて処理を行うことになります。
- FileDialogプロパティの引数にmsoFileDialogFilePickerを指定して実行し、FileDialogオブジェクトを取得する。
- FileDialogオブジェクトのShowメソッドで「ファイル参照」ダイアログボックスを表示する。(その後、ダイアログボックスでの操作を行う。)
- FileDialogオブジェクトのSelectedItemsプロパティを使ってFileDialogSelectedItemsコレクションに格納されているファイル情報を使ってテキスト処理を行う。
構文
Application.FileDialog(msoFileDialogFilePicker) As FileDialog
引数にはMsoFileDialogType列挙型の「ファイル参照」を表示するためのmsoFileDialogFilePicker定数を指定します。
使い方
Application.FileDialogプロパティに「ファイル参照」ダイアログを表示するためのmsoFileDialogFilePicker定数を指定します。
ボタン名を設定していますが、これはExcelのバグ対策でして、ボタン名を設定しないとダイアログを開いたときは「開く(O)」と表示されていますが、ファイルをクリックすると「OK」に変わってしまうことがあります。これを防ぐためです。”開く(&O)”の&はアンダーバーを表示してショートカット扱いにします。
あとはShowメソッドを使ってファイル選択を行う「参照」ダイアログを表示します。ダイアログの「開く」ボタンを押した場合は-1、キャンセルボタンか×ボタンを押した場合は0が返ります。そのため0が返された場合はそこで処理を終了しています。
「ファイル参照」ダイアログでファイルを選択して「開く」ボタンを押すと、FileDialogオブジェクトのSelectedItemsプロパティで取得できるFileDialogSelectedItemsコレクションにファイル情報が格納されます。
それ以降に参照したファイルをどう扱うかはいろいろあると思いますが、ここではFileDialogSelectedItemsコレクションを使って参照したファイルをテキストファイルとして開いて1行ずつ取得してイミディエイトウィンドウに出力しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
Sub FileDialogFilePicker() Dim fd As FileDialog Dim ret Dim n Dim buf '// ファイル参照ダイアログを設定 Set fd = Application.FileDialog(msoFileDialogFilePicker) '// ボタン名 fd.ButtonName = "開く(&O)" '// ダイアログを開く ret = fd.Show '// キャンセルボタンまたは×ボタンの場合 If ret = 0 Then '// キャンセル時は処理を抜ける Exit Sub End If n = FreeFile '// 対象ファイルを開く Open fd.SelectedItems.Item(1) For Input As #1 '// 全行ループ Do Until EOF(n) '// 1行読み込み Line Input #1, buf Debug.Print buf Loop '// 対象ファイルを閉じる Close #n End Sub |