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

解決


MH  2005-04-26 00:59:31  No: 89563

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


m  2005-04-26 01:03:53  No: 89564

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


MH  2005-04-26 01:30:24  No: 89565

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


m  2005-04-26 01:32:27  No: 89566

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


MH  2005-04-26 01:34:06  No: 89567

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


m  2005-04-26 01:44:00  No: 89568

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


MH  2005-04-26 01:45:12  No: 89569

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


MH  2005-04-27 19:04:31  No: 89570

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

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


m  2005-04-27 19:14:54  No: 89571

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


MH  2005-04-27 19:15:59  No: 89572

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


MH  2005-04-27 19:18:41  No: 89573

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


m  2005-04-27 19:23:54  No: 89574

前にも書きましたが、
>>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 19:26:53  No: 89575

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

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


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加