2024年11月21日木曜日

vba ファイルのフルパスはApplication.GetOpenFilenameでゲットせよ

taka-skull

 vbaでファイルを扱うツールを作成する場合、入力となるファイルをmenuシートの特定セル(例えば、A10セル)にフルパスで書いてもらうといった作りになる。  ところが、フルパスのファイル名を指定することは、長々と文字列を書くことになり、意外と面倒くさい。そこで、A10セルの隣のセルに(ファイル)選択とか(フォルダ)参照とかいったボタンを作成し、サクッとGUI画面で設定できるようにしたい。
それを実現するため、ファイル選択ダイアログ(GUIだ)でファイルを選択し、そのファイルのフルパスを取得し、A10セルに設定するコードを書く。こんな感じで。  このコードを選択ボタン或いは参照ボタンにマクロ登録すれば、もう、完成だ。




Sub GetFileName()
Dim FileName as Variant
   FileName = Application.GetOpenFilename("Microsoft Excelブック,*.xlsx?")
   If FileName = False Then Exit Sub
   Range("A10").Value =  FileName 
End Sub
フォルダ選択ダイアログFileDialogとDir関数、ワイルドカード「*」を使う方法もある。

0 件のコメント:

コメントを投稿