Excel VBA ファイル選択 パス 名前取得
今回は、ExcelVBAでのファイル選択から、ファイルパスとファイル名を取得する方法について書いて行きます。まず初めに「ツール」→「参照設定」から、「Microsoft Scripting Runtime」にチェックを入れます(図1)。
今回のサンプル図2は、「Application.FileDialogプロパティ」を利用しファイルパスを取得し、さらに「FileSystemObject」を利用してファイル名を取得しています。
ここで「Application.FileDialogプロパティ」はFileDialogオブジェクトを返すので、fdにオブジェクトを代入しています。さらに「fd.AllowMultiSelect = False」とすることで、複数のファイル選択を不可としています。そして「msoFileDialogFilePicker」はユーザーがファイルを選択するのを許可します。
またFileDialog.ShowメソッドでOKボタンを押した時を「−1」とする事で、ボタンのクリックを認識しています。「fd.SelectedItems(1)」はファイルを一つしか選択していないので、インデックスを1に設定します。
今回のサンプルプログラムを実行すると、ファイル選択画面が出ますので、ファイルを選択すると、「Sheet1」の1行1列に「選択したファイルのファイルパス」、1行2列目に「選択したファイルのファイル名」が表示されます。
ファイルパスとファイル名を、ダイアログボックスで選択して取得できるようになると、VBAの幅が広がりますので、ぜひ利用してみてください。