创建使用html的vba消息框

创建使用html的vba消息框

问题描述:

如何使用VBA返回带有正常运行的HTML标记的消息框? 例如创建使用html的vba消息框

dim mtext as string 
    mtext = "<em>hello</em> <br> world" 
    msgbox mtext 
+2

简短的答案是你不能。很长的答案是......你真的想在窗体中嵌入一个非常古老的不安全的Web浏览器控件来显示一些文本?如何控制格式,而不必依赖于HTML解析器,而是使用富文本框控件。 – Jeremy

+0

#FunFact:[只]在MS-Access中,如果您知道在哪里可以找到它,仍然支持[现在已弃用的]格式表MsgBox。 –

+0

如果你想使用HTML,也许这样的事情会工作:http://stackoverflow.com/q/27744288/4996248但我真的怀疑它是值得的。低科技的方法:只要使用诸如“>世界”之类的东西,如果你想强调的东西。也许会做一些ascii艺术。 –

你不知道。 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类型库。

换句话说,它可以完成 - 它只取决于你想要它多么糟糕。

+0

如果我想要构建它,我会把它放在github上。 –

我想自定义设计表单,然后有根据您的需要专门的文字集。我可以问你为什么要使用HTML代码?因为在推送到富文本框之前,创建自己的库/类来处理处理可能很简单。但是,Rich Text Box只能在VB中使用,就像使用VB Studio Express一样。使用VBA,你有点卡住......抱歉。