こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel2003 VBA Shell関数について

AフォルダにあるZipファイルを検索し、そのファイルを解凍ソフトで開きBフォルダに解凍するマクロを作成中です。解凍ソフト自体に保存先フォルダを設定していますので、Bフォルダは関係ありません。

----------------------------
Sub AAA

Dim ksDir As String
Dim ktExe As String
Dim fName As String
Dim i As Long

 Const KTS As String = ".zip"

 ksDir = "\\xxx.xxx.xxx.xxx\A\"

 fName = Dir (ksDir & "*" KTS , vbNormal)
 
Do While fName = <> ""
  Shell "\\xxx.xxx.xxx.xxx\C\解凍ソフト.exe ktDir & fName"
   i = i + 1
   nName = Dir
Loop

End Sub
--------------------------

「Shell "\\xxx.xxx.xxx.xxx\C\解凍ソフト.exe ktDir & fName"」の”ktDir & fName”の部分に実在する
ファイルのパスを入れるとうまくいきますが、変数を入れて処理するとうまくいきません。

どこか間違いがある、又は他によい記述のしかたがあれば教えてください。

よろしくお願いします。

投稿日時 - 2010-12-14 22:44:48

QNo.6385055

困ってます

質問者が選んだベストアンサー

fName = Dir (ksDir & "*" KTS , vbNormal)

fName = Dir (ksDir & "*" & KTS , vbNormal)

Shell "\\xxx.xxx.xxx.xxx\C\解凍ソフト.exe ktDir & fName"

Shell "\\xxx.xxx.xxx.xxx\C\解凍ソフト.exe " & ktDir & fName

exeのあとに半角spaceを入れるとか、回答ソフトに ktDir & fNameを入れる書式がこれで合っていれば。

投稿日時 - 2010-12-14 23:35:45

お礼

半角がキーでした。ありがとうございました。

投稿日時 - 2010-12-30 21:04:58

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

すみませんがロジックがはっきりしません。

ksDirを定義し、fNameも定義していますが、ktDir(ksDirとはスペルが違う)とは何でしょうか。

iをカウントしていますが何でしょうか。

nName = Dir はスペルミスですか。

多分(部分的ですが)

Const KTS As String = "*.zip"

fName = Dir (ksDir & KTS , vbNormal)

Shell "\\xxx.xxx.xxx.xxx\C\解凍ソフト.exe " & ksDir & fName

fName = Dir()

投稿日時 - 2010-12-15 01:00:10

ANo.1

 
>Shell "\\xxx.xxx.xxx.xxx\C\解凍ソフト.exe ktDir & fName"

このままでは、ktDir & fName というファイル名になりませんか?
ktDir & fNameを ""の外に出すべきだと。

Shell "\\xxx.xxx.xxx.xxx\C\解凍ソフト.exe " & ktDir & fName
 
以上です。

投稿日時 - 2010-12-14 23:05:41

あなたにオススメの質問