• 締切済み

VBAからjavascriptに値を渡す

VBAでIEを操作しております。 一部javascriptを使って以下のようなコードで、リンクをクリックしています。 ie.document.Script.setTimeout "javascript:document.getElementById(""ID"").click()}", 10 getElementById(""ID"")のID部分を変数にしたいのですが、 Dim ID as String ID=○○ ie.document.Script.setTimeout "javascript:document.getElementById(○○).click()}", 10 としてもうまく動きません。 javascriptの中身をfunctionにして、引数に○○を持っていっても動きませんでした。 どうすれば引数を渡すことができますか。 jscriptを使えばできそうな気がしたのですが、 js.CodeObject.関数名(引数)で渡せる引数が1つだけ?のようで こちらも頓挫しております。どうかご教示お願いします。

みんなの回答

  • byDesign
  • ベストアンサー率75% (45/60)
回答No.1

ie.document.Script.setTimeout "javascript:document.getElementById(" + ID + ").click()}", 文字を連結すれば良いのでは?

momomo100
質問者

お礼

ありがとうございます。 そちらも+と&で試しましたが、変数に値は代入はされてるようなんですが これだとメソッド自体が動きませんでした。

momomo100
質問者

補足

色々試してみたところ自己解決しました! js.CodeObject.関数名 引数1,引数2 で引数を2つ以上わたすことができました。 一応必要な部分だけ書いておきます。 Dim js As New ScriptControl js.Language = "JScript" Dim cd As String cd = cd & "function clk(ie,URL){" cd = cd & "ie.document.querySelector('a[href*=""' + URL + '""]').click();" cd = cd & "}" js.AddCode (cd) ’ここに必要な処理 URL = "http://rdsig.yahoo.co.jp/" js.CodeObject.clk IE, URL

関連するQ&A