アプリ版:「スタンプのみでお礼する」機能のリリースについて

Accessのフォームに 、WebBrowserコントロールを貼り付けて、
JavaScript が記述されている、HTML を表示させているのですが、

その HTML内の JavaScriptから、Access VBAの関数を呼び出したり、
イベントを発生させることは、可能でしょうか?

以上、宜しくお願い致します。

A 回答 (1件)

隠しボタン経由でVBA側にイベントを発生させるとか。



http://www.gizcollabo.jp/vbtomo/log/archive/vbqa …
    • good
    • 1
この回答へのお礼

ありがとうございました。

教えて頂いたサイトを参考に、テストプログラムを組んでみたら、うまく動作しました。

----------------------------------------
アクセスで新規フォームを作る。
「Microsoft HTML Object Library」を参照設定。
WebBrowserコントロールを貼り付けて、以下のプログラムを貼り付け。

アクセスのフォームのプログラム
----------------------------------------
Option Compare Database
Option Explicit

Private WithEvents htmlCmd1 As MSHTML.HTMLInputButtonElement
Private WithEvents htmlCmd2 As MSHTML.HTMLInputButtonElement

Private Sub Form_Load()
WebBrowser1.Navigate2 CurrentProject.Path + "\form.html"
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
If URL = CurrentProject.Path + "\form.html" Then
Set htmlCmd1 = WebBrowser1.Document.all.btn1
Set htmlCmd2 = WebBrowser1.Document.all.btn2
End If
End Sub

Private Function htmlCmd1_onclick() As Boolean
MsgBox "test1が実行されました。"
End Function

Private Function htmlCmd2_onclick() As Boolean
MsgBox "test2が実行されました。"
End Function
----------------------------------------

form.htmlの中身
----------------------------------------
<html>
<head>
<script type="text/javascript">
<!--
function test1(){
document.getElementById('btn1').click();
}

function test2(){
document.getElementById('btn2').click();
}
-->
</script>
</head>
<body>
フォームテスト</p></p>
<!--確認処理開始用のボタン-->
<input type="button" value="テスト開始1" onClick="test1()">
<input type="button" value="テスト開始2" onClick="test2()">
<!--ここからVBAのイベントを発生させる為の隠しボタン-->
<input type="hidden" id="btn1" name="uid">
<input type="hidden" id="btn2" name="uid">
</body>
</html>
----------------------------------------

お礼日時:2013/11/07 11:01

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