2017-04-04 104 views
3

如何使用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藝術。 –

回答

2

你不知道。 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上。 –

0

我想自定義設計表單,然後有根據您的需要專門的文字集。我可以問你爲什麼要使用HTML代碼?因爲在推送到富文本框之前,創建自己的庫/類來處理處理可能很簡單。但是,Rich Text Box只能在VB中使用,就像使用VB Studio Express一樣。使用VBA,你有點卡住......抱歉。