プロが教えるわが家の防犯対策術!

ExcelVBAでワークシートを監視している状態で,VBscriptを実行して,IEを操作したいと考えています。ただ,このとき,監視していたワークシートの中の数値を引数としてVbscriptに渡したいと考えています。このようなことが出来るのでしょうか?出来るのであれば教えてください。

もし,引数として渡すことが出来ないのであればVBscriptの方から,ワークシートのセルを読みに行かせるという方法もあると思うのですが,VBAの方でワークシートの値を更新するので,VBAとVBscriptの両方が同時に同じセルを操作したりすると,不具合が起こったりするのではないかと心配です。ですから,ワークシートの読み書きはVBAにやらせて,VBAから,引数のようにして必要なデータをVBscriptに渡せないかと考えています。

しかし,エラー処理などをして,上記の不具合が解消できるのであれば,引数で渡すのではなく,ワークシートを読みに行く形でも良いのかなと思っていますが,そうすると,VBscriptで既に開いているワークシートを特定して,所定のエクセルシートを操作できるようにしなければなりません。その際の具体的な方法等が分れば,教えていただきたいです。(UWSCでいうところの,getactiveoleobject?みたいなのがあれば,それを中心に,サンプルコードを御提示いただきたいです。)

どうか,よろしくお願いします。

A 回答 (2件)

Wscript Arguements について調べてみてください。


https://msdn.microsoft.com/ja-jp/library/cc36447 …
のVBScriptを、Q.vbs とかの名前で保存します。
Excel VBA からは
Shell "wscript.exe C:\test\Q.vbs ""aa"" "" bb"
などと実行すると、aa bb が渡されて aaとbbが返ってきます。
    • good
    • 0
この回答へのお礼

ありがとうございました。おかげさまでやりたいことができました。
今後ともよろしくお願いします

お礼日時:2016/02/12 03:17

VBAの方から、セルの値を書き込んだVBSファイルの作成をし、起動と終了するのはダメなのですか?


他には必要箇所のセルの内容をテキストファイルに保存し、それをVBSの方で作成日時の更新があったら読み取るようなコードを書くなど。

でも、やっぱりVBSの方から直接セルにアクセスするのが一番いいのでは?
書き込み処理を行うようなコードを書かなければ、セルの値が変更させることはないので、そこは作り方次第ですね。
    • good
    • 0
この回答へのお礼

Hypnomatic さん,ありがとうございました。今後ともよろしくお願いします。

お礼日時:2016/02/12 03:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!