[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『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)
早速のご返答ありがとうございました。
でトライしましたが、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)
.Run " & ST_exe & ", , True
上記でトライしたら一瞬走ったのですが、 ”実行時エラー'2147352567 (80020009)': 処理を待つことができません” というエラーメッセージに変りました。
何か回避案ありそうでしょうか。
(代理人)
>.Run " & ST_exe & ", , True これだと 変数ST_exeまで文字列になってしまいませんか? .Run """" & ST_exe & """", , True はダメかな? ヒントでも出せればと色々調べたのですが WSHはかじった程度+テスト環境が無いのでこれ以上は私には無理かもです。 他の識者の回答をお待ちください。 (momo)
ご提案の .Run """" & ST_exe & """", , True ですが、結果最初と同じエラーメッセージが出てしまいました。 後に1つづつ両方の " を削って行った結果、残り1つになって 上記のメッセージへと変化した次第です。
いろいろご丁寧にアドバイスいただきありがとうございました。 またご教授願います。
(代理人)
最初のコードであれば ST_exe = """c:\program files\IBM\Client access\cwbtf.exe"" " & pass_6 & Teigi01 でよいのでは? (Mook)
でっ、できました。助かりました。 アドバイスありがとうございました。 今後ともよろしくお願いします。
(代理人)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.