Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 15768|回复: 7

[已解决]新年第一问: 能否定义msgbox 字体的颜色,大小?

[复制链接]
发表于 2015-2-25 14:46 | 显示全部楼层 |阅读模式
本帖最后由 markang 于 2017-3-5 12:09 编辑

首先我祝论坛的各位朋友及长期无私帮助我们学习vba的老师们,新春快乐 ,新的一年有新的起点和目标.
我今天的问题是能否定义vba中msgbox中字体的颜色和大小?如果能,能给个示例代码吗?
最佳答案
2017-2-15 11:27
闻启学 发表于 2017-2-14 23:32
setsysfont  无这个函数

'设置指定窗口显示对象的颜色
Private Declare Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As Long, lpColorvalues As Long) As Long

Sub Demo()
    Dim colors As Long
    colors = SetSysColors(1, 8, vbRed)
    MsgBox "设置为红色"
    colors = SetSysColors(1, 8, vbBlack)
    MsgBox "恢复为黑色"
End Sub





试了下,我没查到setsysfont,那就不用,只改字色。

发表于 2015-2-25 15:30 | 显示全部楼层
  1. Private Declare Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As Long, lpColorvalues As Long) As Long
  2. Sub demo()
  3.     Dim colors As Long
  4.     colors = SetSysColors(1, 8, vbRed) '设置win字体
  5.     fonts = setsysfont(9)
  6.     MsgBox "颜色更改为红色", , "提示"
  7.     colors = SetSysColors(1, 8, vbBlack) '还原win字体
  8. End Sub
复制代码
我只知道能通过API更改颜色(其实就是更改系统字体的颜色,如果你的系统颜色不是黑色,请不要用最后那句更改。否则可能和你的系统背景重复而看不到文字内容了)

至于字体大小,windows好像没有这个设置,没辙。。。解决方案,画一个类似的窗体其实更加方便。
回复

使用道具 举报

 楼主| 发表于 2015-2-25 16:41 | 显示全部楼层
我尝试在vba调试窗口运行上面的代码,但是报错"子过程或函数未定义",什么问题呢?
回复

使用道具 举报

发表于 2017-2-14 23:32 | 显示全部楼层
markang 发表于 2015-2-25 16:41
我尝试在vba调试窗口运行上面的代码,但是报错"子过程或函数未定义",什么问题呢?

setsysfont  无这个函数
回复

使用道具 举报

发表于 2017-2-15 11:27 | 显示全部楼层    本楼为最佳答案   
闻启学 发表于 2017-2-14 23:32
setsysfont  无这个函数

'设置指定窗口显示对象的颜色
Private Declare Function SetSysColors Lib "user32" (ByVal nChanges As Long, lpSysColor As Long, lpColorvalues As Long) As Long

Sub Demo()
    Dim colors As Long
    colors = SetSysColors(1, 8, vbRed)
    MsgBox "设置为红色"
    colors = SetSysColors(1, 8, vbBlack)
    MsgBox "恢复为黑色"
End Sub





试了下,我没查到setsysfont,那就不用,只改字色。

回复

使用道具 举报

发表于 2017-2-15 11:29 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2017-3-5 12:08 | 显示全部楼层
谢谢爱疯
回复

使用道具 举报

发表于 2021-12-19 23:37 | 显示全部楼层
爱疯 发表于 2017-2-15 11:27
'设置指定窗口显示对象的颜色
Private Declare Function SetSysColors Lib "user32" (ByVal nChanges As ...

可以改成宋体显示吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 09:47 , Processed in 0.402744 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表