VBA常用代码解析(第十三讲) 下载本文

内容发布更新时间 : 2024/11/15 18:39:47星期一 下面是文章的全部内容请认真阅读。

VBA常用代码解析(第十三讲)

055 在工作表中添加艺术字在工作表中插入艺术字,可以使用AddTextEffect方法,如下面的代码所示。 Sub TextEffect() DimmyShape As Shape On ErrorResume Next Sheet1.Shapes('myShape').Delete SetmyShape = Sheet1.Shapes.AddTextEffect _

(PresetTextEffect:=msoTextEffect15,_ Text:='我爱Excel Home',FontName:='宋体',FontSize:=36,_

FontBold:=msoFalse,FontItalic:=msoFalse,_ Left:=100,Top:=100) WithmyShape .Name = 'myShape'

With .Fill .Solid .ForeColor.SchemeColor = 55 .Transparency = 0 End With With .Line .Weight = 1.5 .DashStyle = msoLineSolid .Style = msoLineSingle .Transparency = 0 .ForeColor.SchemeColor = 12 .BackColor.RGB = RGB(255,255,255) End With EndWith SetmyShape = Nothing End Sub代码解析:TextEffect过程在工作表中插入艺术字并设置其格式。第3、4行代码删除工作表中可能存在的艺术字,以免重复添加。第5行到第9行代码使用AddTextEffect方法在工作表中插入艺术字,AddTextEffect方法创建艺术字对象。返回一个Shape对象,该对象代表新建的艺术字对象,语法如下:expression.AddTextEffect(PresetTextEffect,Text,

FontName,FontSize,FontBold,FontItalic,Left,Top)参数expression是必需的,返回一个Shapes对象。参数PresetTextEffect是必需的,艺术字预置文本效果,可为MsoPresetTextEffect 常量之一,等同于在工作表中插入艺术字时的样式选项卡。参数Text是必需的,艺术字对象中的文字。参数FontName是必需的,艺术字对象中所用的字体名称。参数FontSize是必需的,以磅为单位给出艺术字对象中所用的字体大小。参数FontBold是必需的,在艺术字中要加粗的字体。参数FontItalic是必需的,在艺术字中要倾斜的字体。参数Left和参数Top是必需的,相对于文档的左上角、顶部,以磅为单位给出艺术字对象边框左上角的位置。第11行代码将艺术字对象重命名为“myShape”。第12行到第16行代码设置艺术字对象的填充格式。其中第13行代码将填充格式设置为均一的颜色,应用于FillFormat 对象的Solid方法将指定的填充格式设置为均一的颜色,可用本方法将带有渐进色、纹理、图案或背景的填充格式转换为单色的填充格式。第14行代码设置填充的颜色。第15行代码设置填充的透明度。第17行到第24行代码设置艺术字对象的线条格式属性。其中第18行代码设置线条粗细,第19行代码设置线条虚线样式,第20行代码设置线条区域的样式,第21行代码设置线条的透明度,第22行代码设置前景色,第23行代码设置填充背景的颜色。 ▲056 遍历工作表中的图形工

作表中的多个图形,如果使用系统缺省名称,如“文本框1”、“文本框2”这样前面是固定的字符串,后面是序号的,可以使用For...Next 语句遍历图形,如下面的代码所示。 Sub ErgShapes_1() Dimi As Integer Fori = 1 To 4 Sheet1.Shapes('文本框 ' & i).TextFrame.Characters.Text = ““ Next End Sub代码解析:ErgShapes_1过程清除工作表中四个图形文本框中的文字。第3行到第5行代码,使用Shapes属性在工作表上的三个图形文本框中循环。Shapes属性返回Shapes对象,代表工作表或图形工作表上的所有图形,可以使用

Shapes(index)返回单个的Shape对象,其中index是图形的名称或索引号。返回单个的Shape对象后使用TextFrame属性和Characters方法清除文本框中的字符,关于Shape对象的TextFrame 属性和Characters方法请参阅▲53 。如果图形的名称没有规律,可以使用For Each...Next 语句循环遍历所有图形,根据Type属性返回的图形类型进行相应的操作,如下面的代码所示。 Sub ErgShapes_2() DimmyShape As Shape Dimi As Integer i =1 ForEach myShape In Sheet1.Shapes If myShape.Type = msoTextBox Then

myShape.TextFrame.Characters.Text ='这是第' & i & '个文本框' i = i + 1 End If Next End Sub代码解析:ErgShapes_2过程在工作表中的所有图形文本框中写入文本。第5行代码使用For Each...Next语句循环遍历工作表中所有的图形对象。第6