フォルダ参照ではなくファイルを指定したい。
フォルダの参照ダイアログボックスを使用して
ファイルを選択できるようにしています。
プログラムでcsv形式で保存し、そのcsv形式ファイルを指定して開くという動作を目的としています。
そのファイル選択を固定でなく可変で選択したいと思っています。
Dim ShellApp As Object
Dim oFolder As Object
Set ShellApp = CreateObject("Shell.Application")
Set oFolder = ShellApp.BrowseForFolder(0, "ファイル選択", &H4000,"C:\test")
msgbox(oFolder)
このような感じで、フォルダのみではなくファイルを指定することに成功しました。
しかし、このフォルダ参照ダイアログが表示されたときに、何も選択せずに
キャンセルボタンをクリックするとエラーが出て止まってしまいます。
目的とする動作はできてはいるのですが、キャンセルするとエラーになるので、この原因がわからず困っています。
キャンセルボタンに関することを記述する必要があるのでしょうか?
また、この他にファイルを指定するのに適した方法がありましたら教えてください。
参照するフォルダを指定しているのでパスの取得は必要ありません。
ファイルが選択できたらOKです。
フォルダのパス取得のプログラムはよくサンプルを見かけるのですが、
ファイル選択のサンプルはあまり見かけないです(-_-;)
また、この方法ではC:\と絶対パスで指定していますが、exeファイルが存在する場所からの相対パスでの指定はできないのでしょうか?
csvで保存する時は"./test/test.csv"などと記述して書き込みできていたのですが、
このようなパスを書くとエラーとなりファイルを見つけられないといわれてしまいます。
お礼
早速のお返事ありがとうございます! 教えて頂いたとおりにやりましたら、できました。 勉強になりました、ありがとうございます☆