vba msgbox html 标签,VBA更改MsgBox中的文本颜色

这篇博客介绍了一段VBA代码,用于在用户窗体(UserForm)中显示消息,并通过系统颜色API动态更改MessageBox文本的颜色。代码示例展示了如何在弹出的MessageBox中将文本颜色更改为红色和绿色,同时在操作完成后恢复默认颜色。
摘要由CSDN通过智能技术生成

正如Ralph建议的那样,最好在UserForm中显示您的消息,您可以轻松控制文本特征.

但是,可以使用系统颜色API更改MessageBox文本的颜色.由于MessageBox是一个Window,您可以更改它的颜色参数(不仅仅是文本,还有其他各种参数).

您需要确保之后立即重置原始值,否则所有窗口都将以修改后的颜色显示.

下面的代码将自动检测32位和64位系统,并且同样适用于两者:

Option Explicit

#If Win64 Then

Private Declare PtrSafe Function GetSysColor Lib "user32" _

(ByVal nIndex As Long) As Long

Private Declare PtrSafe Function SetSysColors Lib "user32" _

(ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long

#Else

Private Declare Function GetSysColor Lib "user32" _

(ByVal nIndex As Long) As Long

Private Declare Function SetSysColors Lib "user32" _

(ByVal nChanges As Long, lpSysColor As Long, lpColorValues As Long) As Long

#End If

Private Const COLOR_WINDOWTEXT As Long = 8

Private Const CHANGE_INDEX As Long = 1

Public Sub RunMe()

Dim defaultColour As Long

'Store the default system colour

defaultColour = GetSysColor(COLOR_WINDOWTEXT)

'Set system colour to red

SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, vbRed

MsgBox "Incorrect", , "Your result is..."

'Set system colour to green

SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, vbGreen

MsgBox "Correct", , "Your result is..."

'Restore default value

SetSysColors CHANGE_INDEX, COLOR_WINDOWTEXT, defaultColour

End Sub

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值