Windows/XP/pro、エクセル2002 使用です。
c:\autocsvフォルダーに、MS-DOSコマンドを使ってFTPを自動実行しサーバーからCSVを自動的に取得する.TXTファイルと、バッチファイルの.batファイルをおいています。
参考URL http://www.ponko2.com/ftp_bat.html
この.batファイルをVBAから呼び出して実行させるように下記のコードを記述ましたが、ファイルは起動するものの、CSVファイルを取得(またはLogin)できません。Openメソッドを使ってもうまくいきませんでした。実行する関数の間違いと思っていますが、それとも、VBAからバッチファイルを実行する場合の何か決まりごと等があるのでしょうか?
Sub test()
Dim str As Variant
str = Shell("c:\autocsv\auto.bat", vbNormalFocus)
Application.Wait Now + TimeValue("00:00:10")
End Sub
(VBAの実行をステップインを使って1行ずつ実行してもファイルを取得できません)
なお、.batファイルを単独で起動させた場合は、問題なくcsvファイルの取得はできています。
お手数ですが、ご指導いただけますようお願いします。
No.3ベストアンサー
- 回答日時:
まことに申し訳ありません。
CMD/Cを書いてはいけません。動作しません。
当方、試験でauto.batを以下の記述として、結果が得られました。
(cmd/c無しです。ホントにすみません)
dir > c:\dirtext.txt
exit
実行後にカレント(Mydocuments)フォルダの一覧をCドライブのルート(C:\)にdirtext.txtとしてテキスト化します。
なのでauto.bat の内容の問題と思います。
bin-chan様、ありがとうございました。
cmd/cはあった方が良いみたいです。
ご指摘通りauto.batの他のプログラムから実行するときは、.batファイルと一緒のフォルダーに入れていても、.batの実行でパス位置を取得する必要があるみたいです。
本当にありがとうございました。今後ともよろしくお願いします。
No.2
- 回答日時:
#1です。
OSがXPでしたね。
str = Shell("c:\autocsv\auto.bat", vbNormalFocus)
を
str = Shell("cmd/cc:\autocsv\auto.bat", vbNormalFocus)
としてください。
さらに、バッチの最後の行に
EXIT
を一行追加してください。
単独実行の場合には影響ありませんが、CMD/Cで作成したShellを閉じる必要があります。
この回答への補足
bin-chan様、早速のご回答ありがとうございます。
何故か、ファイルが見つかりませんとなります。
ファイルは間違いなく存在します。
ドライブの指定の前にコマンドがいるのですね>>>
自分でも試してみますが、できればご回答よろしくお願いします!!!
No.1
- 回答日時:
str = Shell("c:\autocsv\auto.bat", vbNormalFocus)
を
str = Shell("command/cc:\autocsv\auto.bat", vbNormalFocus)
としてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- Excel(エクセル) エクセルでcsvファイルを開いてVBAを使いたい 7 2022/04/28 11:12
- Visual Basic(VBA) VBA★PDFをPDFアプリで印刷しようと思っていますが上手くゆきません 1 2022/06/06 22:04
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Excel(エクセル) CSVファイルでVBAを動かす方法 3 2023/04/04 10:22
- Visual Basic(VBA) エクセルVBAについて 8 2022/07/13 22:41
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBAでバッチファイルを1つ実行する方法がうまくいきません
Visual Basic(VBA)
-
VBプログラムから「管理者として実行」したい
Visual Basic(VBA)
-
バッチファイルからVBAに引数を渡したい
その他(プログラミング・Web制作)
-
-
4
エクセルからバッチファイルの実行についてお尋ねしたいです。
Visual Basic(VBA)
-
5
VBAでコマンドプロンプトを呼び出す記述で
Visual Basic(VBA)
-
6
VBAでネットワーク上のバッチジョブを実行したい
その他(プログラミング・Web制作)
-
7
ExcelVBAにてアプリをタスクマネージャーから強制終了させたいのですが
Visual Basic(VBA)
-
8
コマンドプロンプト実行後に画面を閉じない方法
Visual Basic(VBA)
-
9
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
10
【Excel VBA】CSV取込時、数字の先頭の0を消えないようにするには?
Excel(エクセル)
-
11
【VBA】ファイルパスに半角スペースが入ると、VBAが動かない
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
[teraterm] waitコマンドで停止...
-
exeファイルを実行するとコマン...
-
バッチファイルの内容を表示さ...
-
ネットワーク名が見つかりません
-
Access の VBA 実行中に他の操...
-
pythonスクリプトを管理者権限...
-
CHKDSKユーティリティとは
-
エクセル フォルダの画像を画...
-
Windows 8.1でRS-232Cが使用で...
-
VBA 既に開いているBookに継続...
-
VBscriptが起動しない?
-
メッセージを他のPCに出したい
-
Excel(エクセル) VBA プロシー...
-
[VBScript]ファイルの削除
-
VBSでバッチを実行できません。
-
バッチファイルが不正終了して...
-
Excel VBA ステップインが途中...
-
シェルで5分前の時間を取得したい
-
VBScriptでSQLファイルの実行
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
exeファイルを実行するとコマン...
-
バッチファイルの内容を表示さ...
-
「読み取りと実行」と「読み取...
-
VBscriptが起動しない?
-
[teraterm] waitコマンドで停止...
-
エクセル フォルダの画像を画...
-
Excel VBA ステップインが途中...
-
PDFファイルを開き、印刷し、閉...
-
バッチファイルで以下のような...
-
VScodeのエラー解決法 Pythonの...
-
VBScriptでコマンドプロンプト...
-
バッチファイルが不正終了して...
-
複数のbatファイルを自動実行し...
-
pythonスクリプトを管理者権限...
-
これってパソコンの最適化が完...
-
ネットワーク名が見つかりません
-
VBS実行時にコマンドプロンプト...
-
メッセージを他のPCに出したい
-
VB.NETでのDOSコマンドを実行に...
おすすめ情報