いちばん失敗した人決定戦

フォルダー指定時に使用する「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)

A 回答 (1件)

あらまぁ、不思議・・・と実験してみました。


本当ですねぇ。

でちょこっと調べました。
で、結果として判明した事。
BrowseForFolderのルート指定するところはオブジェクトタイプのようでString型で渡すとだめなようです。
なので
Dim MyPath As String

Dim MyPath
としてバリアント型で指定すれば大丈夫なようです。
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

すぐに、試したところうまくいきました。
ありがとうございました。すごく助かりました。

お礼日時:2008/12/04 11:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!