2016-08-26 16 views
2

私は現在、Outlookで電子メールが受信されたことを検出し、送信情報を取得して電子メールの内容をコピーするマクロに取り組んでいます。ここから私はExcelのスプレッドシートの設定を持っているので、ユーザーをリストしているのを見つけたらsendkeysスクリプトを使ってヘルプデスクのシステムにジョブを記録します。複数の変数をExcelマクロからVBS Send Keysに渡すにはどうすればよいですか?

私の問題は、複数の変数をsendkeysスクリプトに渡すことです。アイテムの種類(例えば内部が)私はに対してそれをログに記録しています

strParam1 = AssystID 
strParam2 = Sheets("Ext Database").Range("G3").Value 
strVBSPath = "C:\Scripts\testsofar.vbs" 
Shell ("wscript.exe " & strVBSPath & " " & strParam1 & strParam2) 

strParam1は、データベースとstrParam2からユーザー名(例えばKIERANL)です。ここで

は、私はExcelのマクロからそれを見逃しています方法です。

私が問題を抱えているのは、SendKeysスクリプトから正しい出力を得ることです。現在私はWshShell.SendKeys Wscript.Arguments(0) を送信しなければならないと私は信じていますが、複数の値を渡しているときは、上の例のようにそれらを組み合わせています:KIERANLINTERNALすべてを1行にします。

私の質問は正確に間違っていますか?私はこのページを見ました: https://technet.microsoft.com/en-us/library/ee692833.aspxと私は私の方法で何が間違っているかを正確に見ることができません。

+0

この記事はどのように関連性がありますか'SendKeys()'について言及していませんか? – Lankymart

+0

しかし、それはWscriptの引数について言及している、私は彼らがSendKeysを使用して同じ方法だろうと思った。私は2つの異なるものと混同していますか? – Kier

+0

'Arguments'はコマンドライン引数としてスクリプトに渡されるものの集合なので、例えば' wscript.exe test.vbs 1、test、 "test 2" 'は' 1'、 test'と 'test 2'です。 'SendKeys()'はキー入力*(キーボードで打たれたようなもの)*をアクティブなウィンドウに送るために使われます。 – Lankymart

答えて

0

私はあなたが渡している議論の間に分離の欠如が問題だと思います。

wscript.exe C:\Scripts\testsofar.vbs KIERANLINTERNAL 

実際にあなたがこの

wscript.exe C:\Scripts\testsofar.vbs KIERANL, INTERNAL 

だけのコードでこれを行うにしたいときに、2つのパラメータが1にマージしているされている問題を渡されたときに、あなたのコマンドは次のようになります瞬間

このような2つの引数の間にコンマを連結します。

Shell ("wscript.exe " & strVBSPath & " " & strParam1 & ", " & strParam2) 
関連する問題