如何通过MS Access窗体Web浏览器控件的按钮调用自定义VBA函数
实现步骤
- 首先确认自定义VBA函数的存放规则:你编写的
Test函数必须放在标准模块中,且声明为Public类型,示例代码如下:
Public Function Test() MsgBox "hello" End Function
- 调整HTML按钮的触发逻辑:Web浏览器控件可以通过
window.external对象访问宿主Access环境下的公开VBA函数,所以按钮的onclick事件直接调用对应方法即可,修改后的HTML代码如下:
<button type="button" onclick="window.external.Test()">show message</button>
- 可选:如果需要在窗体加载时动态给Web浏览器控件写入HTML内容,可以使用以下窗体加载事件代码,注意将
WebBrowser0替换为你自己控件的实际名称:
Private Sub Form_Load() Dim htmlStr As String htmlStr = "<!DOCTYPE html>" & _ "<html><body>" & _ "<button type='button' onclick='window.external.Test()'>show message</button>" & _ "</body></html>" ' 写入HTML到浏览器控件 Me.WebBrowser0.Object.Document.Write htmlStr Me.WebBrowser0.Object.Document.Close End Sub
- 注意事项:
- 需要确保Access的宏安全设置允许运行VBA代码,否则函数调用会被拦截
- 如果是加载本地HTML文件,建议在HTML头部添加Mark of the Web标记避免安全提示阻断交互
内容的提问来源于stack exchange,提问作者majid
相关产品推荐
相关产品推荐

