※ ChatGPTを利用し、要約された質問です(原文:VBAでのフォルダ指定方法について 2回目)
VBAでのフォルダ指定方法について
2008/12/04 10:56
このQ&Aのポイント
VBAのフォルダ指定方法について、ShellApp.BrowseForFolderを使用する際にパスを直接指定すると、指定したフォルダ配下のフォルダが表示されますが、変数にするとデフォルトの表示になることがあります。ファイルを置いて実行させるフォルダが固定でない場合には、ファイルを置いてあるフォルダ配下のみを表示させることはできないようです。
実行環境がWindows 97の影響もあるかもしれません。VBAのフォルダ指定に関して助けを求めています。
以下は、VBAで実行中のファイルのパスを取得し、それを使用してフォルダ指定を行っているソースコードの一部です。
フォルダー指定時に使用する「ShellApp.BrowseForFolder」について教えてください。
パス指定するところに直にフルパスを記述すると、そのフォルダを先頭として配下のフォルダが表示されます。
-イメージー
【業務】
【業務1】
【業務2】
しかし、変数にするとエラーは出ないのですが指定したパスを無視してデフォルトの表示となります。
-イメージー
【デスクトップ】
【マイドキュメント】
【マイコンピュータ】
:
ファイルを置いて実行させるフォルダーが固定で無いので、ファイルを置いてあるフォルダ配下のみ表示させたいのですが無理なのでしょうか。
実行環境が97なのが影響してるのでしょうか。
どなたか、お助けください。
以下、今試しているソースです。
Dim ShellApp As Object
Dim oFolder As Object
Dim MyPath As String
MyPath = ActiveWorkbook.Path
ChDir MyPath
'MyPathの中身が「C:\Documents and Settings\ABC\My Documents\業務」であることを確認
MsgBox (MyPath)
Set ShellApp = CreateObject("Shell.Application")
'直にパス指定すると、業務を先頭にその配下のフォルダ指定となる
Set oFolder = ShellApp.BrowseForFolder(0, "処理ファイルの格納フォルダ選択", 1, "C:\Documents and Settings\ABC\My Documents\業務")
'MyPathがきいてない。デスクトップを先頭にその配下のフォルダ指定となる
Set oFolder = ShellApp.BrowseForFolder(0, "処理ファイルの格納フォルダ選択", 1, MyPath)
質問の原文を閉じる
質問の原文を表示する
お礼
早速のご回答ありがとうございます。 すぐに、試したところうまくいきました。 ありがとうございました。すごく助かりました。