Webページのスクリプトを実行するVBAコード

スポンサーリンク

スクリプトを実行するVBAコード

InternetExplorerをVBAで操作するツールの一つとして、今回はページ中に埋め込まれたスクリプトを実行するVBAコードを紹介します。

このコードを用いてスクリプトを実行できるようになると、より柔軟なページの操作ができるようになります。
またボタンをクリックすることで起動するスクリプトについてはボタンをクリックさせなくても実行することができ、コードの短縮につながります。

JavaScriptを動作させるページ

今回はVBAで実行できるJavascriptが含まれるちょうどよいページが見つからなかったので私が作成したページ(https://officevba.info/javascriptbarcodemaker2/)でサンプルコードを作成します。
番号を入力するとJavascriptでバーコードが作成できるというスクリプトが含まれています。

スポンサーリンク

サンプルページのHTMLコード

詳しくはサンプルページのソースを見ればわかりますが、軽く紹介します。
テキストとボタンのソースは以下のようになっています。

①テキストボックス

<input id =”JANCode” type=”text” size=”20″ style=”ime-mode:inactive”>

②表示(Javascript実行)ボタン

<input id =”表示” type=”button” value=”表示” onClick=”JAN作成()”>

表示ボタンをクリックすると「JAN作成()」というスクリプトが実行される仕組みになっています。

スクリプトを実行するVBAコード

スクリプトを実行するコードは「execScript」というコードになります。
対象のページを取得して、スクリプト名を指定することで実行できます。

Declare Sub Sleep Lib “kernel32” (ByVal dwMilliseconds As Long)
Sub スクリプトを実行する()
Dim colSh As Object
Dim objIE As InternetExplorer
Dim win As Object
Dim pwin As HTMLWindow2
Dim txtBox As HTMLInputElement
Shell “C:Program FilesInternet Exploreriexplore.exe https://officevba.info/javascriptbarcodemaker2/”, vbNormalFocus
Sleep 3000
Set colSh = CreateObject(“Shell.Application”)
For Each win In colSh.Windows
If TypeName(win.document) = “HTMLDocument” Then
If InStr(win.document.Title, “VBA”) > 0 Then
Set objIE = win
Exit For
End If
End If
Next
If objIE Is Nothing Then
MsgBox “入力するページが見つかりません”
Exit Sub
End If
Set txtBox = objIE.document.getElementById(“JANCode”)
txtBox.Value = “4975175020312”’テキストボックスにバーコード作成する番号を入力する
Set pwin = objIE.document.parentWindow
pwin.execScript “JAN作成()”’スクリプト「JAN作成()」を実行する
End Sub

おすすめ書籍 (広告)

コメント