[[20100316181054]] 『Shell関数で別ソフトが動く間待たせる方法』(代理人) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『Shell関数で別ソフトが動く間待たせる方法』(代理人)

 いつもお世話になります。また教えてください。
あるEXCELマクロの途中で、IBM AS400からの抽出データを使用するため、
エミュレータの抽出ソフトをShell関数で起動しデータを得ています。

 しかしEXCELマクロはShell関数の終了を待ってくれず先へ進むので、Msgbox
を表示して処理を止め、ユーザーのクリックで先に進むようになっています。
最近その辺の事情を知らないユーザーが、処理完了の確認もせずクリックして
先に進んでしまうケースが増え、トラブル対応工数が増えてきました。

 そこでEXCELマクロが、自動的にShell関数処理の開始〜終了を待ってくれる
ような方法がないでしょうか。
よろしくご教授願います。

EXCEL2000 WindowsXP


 状況がよくわかりませんが
[[20080731140111]] 『BATファイル起動、処理待ち』(カクタス)
 このへんとかを参考にしてみてはどうでしょうか?

 Shell関数ではなくて、Windows Script HostのShellを使う方法で
http://msdn.microsoft.com/ja-jp/library/cc364421.aspx
 を見ると RunメソッドのbWaitOnReturnにTrueを渡すと処理を中断して待機するとなっていますので
 試してみてはいかがでしょうか?

 (momo)

momo様

 早速のご返答ありがとうございました。

 でトライしましたが、RUNのところで
”実行時エラー '-2147024894 (80070002)':
'Run'メソッドは失敗しました:'IWshShell3'オブジェクト”
なるエラーメッセージが出てしまいました。

 ソースは下記です。
  pass_6 = "C:\Documents and Settings\All Users\デスクトップ\"
  ST_exe = "c:\program files\IBM\Client access\cwbtf.exe " & pass_6 & Teigi01
  With CreateObject("WScript.Shell")
        .Run ST_exe, , True
        MsgBox "抽出処理終了"
    End With

 どこがまずいんでしょうか。
再度ご教授願います。
(代理人)

 >.Run ST_exe, , True
 .Run """" & ST_exe & """", , True
 としてもダメですかね?

 試す環境が無いのでなかなか・・・
 (momo)

momo様

 .Run " & ST_exe & ", , True

 上記でトライしたら一瞬走ったのですが、
”実行時エラー'2147352567 (80020009)':
 処理を待つことができません”
というエラーメッセージに変りました。

 何か回避案ありそうでしょうか。

(代理人)


 >.Run " & ST_exe & ", , True
 これだと 変数ST_exeまで文字列になってしまいませんか?
  .Run """" & ST_exe & """", , True
 はダメかな?
 ヒントでも出せればと色々調べたのですが
 WSHはかじった程度+テスト環境が無いのでこれ以上は私には無理かもです。
 他の識者の回答をお待ちください。
 (momo)

momo様

 ご提案の
  .Run """" & ST_exe & """", , True
ですが、結果最初と同じエラーメッセージが出てしまいました。
後に1つづつ両方の " を削って行った結果、残り1つになって
上記のメッセージへと変化した次第です。

 いろいろご丁寧にアドバイスいただきありがとうございました。
またご教授願います。 

(代理人)


 最初のコードであれば
 ST_exe = """c:\program files\IBM\Client access\cwbtf.exe"" " & pass_6 & Teigi01
 でよいのでは?
 (Mook)


Mook様

 でっ、できました。助かりました。
アドバイスありがとうございました。
今後ともよろしくお願いします。

(代理人)


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.