-PR-
解決
済み

VBAを使用して、MS-DOSを起動し、ファイル起動。

  • すぐに回答を!
  • 質問No.49629
  • 閲覧数626
  • ありがとう数1
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 16% (3/18)

初めまして、ynakaといいます。

VBAを使用して、MS-DOSを立ち上げ、ファイルを実行させようと
考えています。
Shellを使用して、MS-DOSを立ち上げるまではできたのですが、
その後、どうすればよいか迷ってます。
MS-DOS上のみでしか使用できないソフトを実行させたいので、
どうしてもMS=DOS上でなくては実行できません。

どなたかお教え下さい。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.4
レベル8

ベストアンサー率 46% (22/47)

キーボードから入力する項目が決まっているのであれば、そのキー入力が入ったファイルを作っておいてリダイレクトします。
「上書きしますか[y/n]」が1回だけあるなら、「y」一文字+改行の入ったファイル(ここではy.txt)を作業ディレクトリに作っておき、
Shell("command.com /c myprog.exe arg1 < y.txt")
というようにします。
まず、DOSプロンプト上で
command.com /c myprog.exe arg1 < y.txt
がちゃんと動くか確認しましょう。
お礼コメント
ynaka

お礼率 16% (3/18)

いろいろとありがといございました。
これで1,2週間悩んでいた問題が解決できました。
(すいません、初心者なもんで。。。)
本当にありがとうございます。
投稿日時 - 2001-03-14 22:56:41
-PR-
-PR-

その他の回答 (全3件)

  • 回答No.1
レベル8

ベストアンサー率 46% (22/47)

Shell関数ででコマンドインタプリタ(commandだかcmdだか)を起動してるんだと予測します。 だったら、 Shell("command /c hoge.exe param1 param2") という感じでいきましょう。 ...続きを読む
Shell関数ででコマンドインタプリタ(commandだかcmdだか)を起動してるんだと予測します。
だったら、

Shell("command /c hoge.exe param1 param2")

という感じでいきましょう。
補足コメント
ynaka

お礼率 16% (3/18)

ご指摘の通り、"COMMAND.COM"を起動させてます。
しかし、この場合、どのドライブから始まるかわからないので
起動させたいファイルがあるドライバに移動させてやる必要が
あります。
また、助言の通りやりますと「パラメータが多すぎます」とでます。
どういう意味か分かりません・・・・
投稿日時 - 2001-03-09 19:50:22
  • 回答No.2
レベル8

ベストアンサー率 46% (22/47)

ドライブやディレクトリを移動しなければならないのは仕方ありません。 ExcelのVBEからこんな感じでうまく動きますけど。 Sub Hoge ChDrive ("c") ChDir ("c:\temp") Call Shell("command.com /c attrib -h -s myfile.txt") ...続きを読む
ドライブやディレクトリを移動しなければならないのは仕方ありません。
ExcelのVBEからこんな感じでうまく動きますけど。

Sub Hoge
ChDrive ("c")
ChDir ("c:\temp")
Call Shell("command.com /c attrib -h -s myfile.txt")
End Sub

「パラメータが多すぎます」というのはVBAのエラーなんでしょうか?それとも
呼び出しているコマンドのエラーなんでしょうか。
このShell呼び出しだと、コマンドプロンプト画面は出ても一瞬で消えてしまって
DOS側でエラーが出てもわかりませんから、テスト中は
Shell("command.com /k hoge param")
の形でやるといいでしょう。

あと、サポート技術情報にこんな情報がありました。
この問題かもしれないのでちょっと見てみてください(ただし英文)。

http://support.microsoft.com/support/kb/articles/Q149/5/70.asp
http://support.microsoft.com/support/kb/articles/Q213/8/00.asp
補足コメント
ynaka

お礼率 16% (3/18)

command.comの後の「 /c attrib -h -s myfile.txt」は
何を現しているのですか?
特に ”/c attrib -h -s”の部分が分かりません。
お教え下さい。
投稿日時 - 2001-03-12 18:23:47
  • 回答No.3
レベル8

ベストアンサー率 46% (22/47)

今回の質問の本質とは関係ないのですが一応ご説明しておきましょう。 attribはファイル属性を変更する外部コマンド(=プログラム)です。 attrib -h -s myfile.txt で、myfile.txtというファイルの隠しファイル属性とシステム属性を外すことができます。今回のVBA関数の例としては何でもよかったので、これを使用しただけです。 さて、ここからは本筋。 command.c ...続きを読む
今回の質問の本質とは関係ないのですが一応ご説明しておきましょう。
attribはファイル属性を変更する外部コマンド(=プログラム)です。
attrib -h -s myfile.txt
で、myfile.txtというファイルの隠しファイル属性とシステム属性を外すことができます。今回のVBA関数の例としては何でもよかったので、これを使用しただけです。

さて、ここからは本筋。
command.com /c myprog
でcommand.comを起動してさらにmyprogを実行できます。myprogというプログラムにコマンドラインパラメータが必要であれば、
command.com /c myprog myarg1 myarg2
のようにすればパラメータ付きで実行できます。
補足コメント
ynaka

お礼率 16% (3/18)

DOS上で、 上書きしますか?[y/n]で自動的に「y」を
選びたいのですが上記ではできませんでした。
何故でしょう?
投稿日時 - 2001-03-13 23:06:28
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ