创建一个使用 html 的 vba 消息框

Dan*_*sch 5 vba

如何使用 VBA 返回带有正常 HTML 标签的消息框?例子

    dim mtext as string
    mtext = "<em>hello</em> <br> world"
    msgbox mtext
Run Code Online (Sandbox Code Playgroud)

Mat*_*don 5

你没有。该MsgBox函数只是对 Win32 API 函数的一个薄包装,并且该函数不处理 HTML 输入。HTML 适用于 Web 浏览器,而不是桌面应用程序。

您可以获得的最接近的东西是UserForm带有RichTextBox控件的自定义,但这是为 Visual Basic 6.0 开发的 OCX 技术,可能无法在 x64 机器上运行,更不用说如果您需要将宏分发给用户,它肯定会崩溃他们的机器上没有 OCX。


更好的替代方法是使用您最喜欢的 .NET 语言(C#、VB.NET)创建一个 COM 可见的类库,并公开一个自定义MessageBox函数,该函数显示一个 WinForms 对话框,该对话框具有一个System.Windows.Forms.RichTextBox可以处理和显示 RTF 格式文本的控件。

然后,您需要向用户分发和注册您的 COM 类型库。

换句话说,它可以做到——它只取决于你有多想要它。