excelのセルからフォルダーを取得しShell関数でexploreを起動するには

解決


MH  2005-04-25 15:59:31  No: 89563  IP: [192.*.*.*]

下記を実行するとファイルが見つかりませんのエラーが表示されます。
Call Shell文において,設定が正しくないのかと思います。
どなたか、正しい設定方法を教えてください。よろしくお願いします。
Dim S As String
  Worksheets(2).Select
  S = Range("A1").Select
Call Shell("explorer.exe""S""", vbNormalFocus)

編集 削除
m  2005-04-25 16:03:53  No: 89564  IP: [192.*.*.*]

>Call Shell("explorer.exe""S""", vbNormalFocus)
"explorer.exe""S""" だと explorer.exe"S" となってしまいます。
Call Shell("explorer.exe " & S, vbNormalFocus)  これでどうですか。

編集 削除
MH  2005-04-25 16:30:24  No: 89565  IP: [192.*.*.*]

mさんへ、ありがとうございます。
mさんのアドバイス通りにしたのですが、まだ
”ファイルが見つかりません”のエラーが表示されています

編集 削除
m  2005-04-25 16:32:27  No: 89566  IP: [192.*.*.*]

>”ファイルが見つかりません”のエラーが表示されています
変数 S にはなにが入っているのでしょうか?
きちんとパスを指定する必要があります。

編集 削除
MH  2005-04-25 16:34:06  No: 89567  IP: [192.*.*.*]

mさんへ、早速のご返答ありがとうございます。
Sには、C:\.\  が入っています。

編集 削除
m  2005-04-25 16:44:00  No: 89568  IP: [192.*.*.*]

explorer.exe パス名
            ^ここにスペースがないのでは・・・

編集 削除
MH  2005-04-25 16:45:12  No: 89569  IP: [192.*.*.*]

m さんへ、S を他の名前に変えましたら、問題無く稼動しました。
ありがとうございました。

編集 削除
MH  2005-04-27 10:04:31  No: 89570  IP: [192.*.*.*]

m  さんへ
マクロをよく見ると解決されていませんでした。
下記としてたのですが、FOLTERSS とスペルミスをしていたので、
エクスプローラーが起動し、うまくいったと勘違いしてしまいました。

Dim FOLDERSS As String
  Worksheets(2).Select
  FOLDERSS = Range("A1").Select
Call Shell("explorer.exe" & FOLTERSS , vbNormalFocus)

編集 削除
m  2005-04-27 10:14:54  No: 89571  IP: [192.*.*.*]

>FOLDERSS = Range("A1").Select
Range("A1").Select はどういった文字列が入っているのでしょうか?

編集 削除
MH  2005-04-27 10:15:59  No: 89572  IP: [192.*.*.*]

m  さんへ、
まず、FOLDERSS = Range("A1").Select が間違いで
      FOLDERSS = Range("A1").value に訂正しました。
下記を実行したのですが、ファイルが見つかりません  が表示されます
Call Shell("explorer.exe" & FOLDERSS , vbNormalFocus)
デバッグで FOLDERSSの内容を見ると  "C:\.\" です。

編集 削除
MH  2005-04-27 10:18:41  No: 89573  IP: [192.*.*.*]

m さんへ
FOLDERSS の内容を手で入力しても同じエラーが発生します。
Call Shell("explorer.exe" & "C:\.\" , vbNormalFocus)

編集 削除
m  2005-04-27 10:23:54  No: 89574  IP: [192.*.*.*]

前にも書きましたが、
>>Call Shell("explorer.exe""S""", vbNormalFocus)
>"explorer.exe""S""" だと explorer.exe"S" となってしまいます。
>Call Shell("explorer.exe " & S, vbNormalFocus)  これでどうですか。

FOLDERSSの内容が "C:\.\" なら、
'explorer.exeC:\.\' となってしまうので、
'explorer.exe' と 'C:\.\' の間に半角スペースがいります。

編集 削除
papa  2005-04-27 10:26:53  No: 89575  IP: [192.*.*.*]

スペースが無いだけでは?
Call Shell("explorer.exe" & " C:\.\", vbNormalFocus)
だったら動くと思います。

Call Shell("explorer.exe" & space$(1) & FOLDERSS , vbNormalFocus)

編集 削除