VBA代码解决方案第三十八讲 如何对MsgBox对话框的内容进行排版,达到美观的效果
《VBA代码解决方案》(版权10028096)这套教程是我最早推出的教程,目前已经是第三版修订了。这套教程定位于入门后的提高,在学习这套教程过程中,侧重点是要理解及掌握我的“积木编程”思想。要灵活运用教程中的实例像搭积木一样把自己喜欢的代码摆好。
这套教程共三册,一百四十七讲,内容覆盖较广,也是初级和中级间的过渡教程,改版后的内容主要是提供程序源码文件及代码修正为32位和64位兼用代码。今后一段时间会给大家陆续推出。今日的内容是VBA代码解决方案第三十八讲 如何对MsgBox对话框的内容进行排版,达到美观的效果
【分享成果,随喜正能量】比起春天里的百花争艳,荷花是专属夏天的浪漫。在热烈的盛夏时节,灵湖里的荷花一开,便自带“万人迷”属性,收获所有人的喜爱!
第三十八讲 如何对MsgBox对话框的内容进行排版,达到美观的效果
朋友们好,今日我们讲解VBA代码解决方案的第38讲,如何对MsgBox对话框进行排版,从而达到美观的效果。语法 【此处可以点击语法,来查看MsgBox的语法结构】
1 排版字符的利用
如果在消息框中显示的字符串很长,比如是一段多行的文字内容,为了达到美观的效果,需要首字缩进,并将各行分隔开来,我们先看下面的几个符号,分别表示了不同的意义是非常有实用意义的。如:vbCrLf,Chr(13) + Chr(10) 表示回车符与换行符结合;vbCr,Chr(13) 表示回车符;vbLf,Chr(10)表示 换行符
另外,在用消息框显示多行多列的数据时,如果只用换行符(Chr(10))等进行换行,而数据列没有对齐,会使显示的信息显得杂乱无章,缺乏可读性,为了达到消息框中显示信息各列对齐的效果,在使用换行符(Chr(10))等进行换行的基础上,还需要使用制表符(Chr(9))或常数vbTab,对数据列进行分隔,使之排列整齐。
2 实现MsgBox对话框内容排版的代码及代码解读
如下面代码所示。
Sub mynz_38() '38 如何对MsgBox对话框的内容进行排版,达到美观的效果
Sheets("38").Select
Dim myMsg As String
Dim iRow As Integer
Dim iCom As Integer
For iRow = 1 To 11
For iCom = 1 To 5
myMsg = myMsg & Cells(iRow, iCom) & Chr(9)
Next
myMsg = myMsg & Chr(10)
Next
MsgBox myMsg
End Sub
代码截图:
代码解析:mynz_38过程使用两层循环读取当前工作表中A1到E11单元格的内容,并用消息框显示出来。
1)第8行代码,iCom循环中在把逐列读取的单元格内容赋给变量mysMsg时插入一个制表符(Chr(9)),对列进行分隔。
2)第10行代码,iRow循环中在读取下一行单元格内容赋给变量myMsg时插入一个换行符(Chr(10)),对行进行换行。
3) 运行mynz_38过程将用消息框显示当前工作表中A1至E11单元格区域中的内容,并排列整齐.
再看看运行后的窗口:
这样在运行后弹出的窗口就非常的漂亮了。
今日内容回向:
1 Chr(13) 是什么意义?
2 Chr(10) 是什么意义?
3 Chr(9) 是什么意义?
本讲内容参考程序文件:VBA代码解决方案(35-38).xlsm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
