当前位置:文档之家› Excel VBA实例教程 #055:在工作表中添加艺术字

Excel VBA实例教程 #055:在工作表中添加艺术字

工作表中的多个图形,如果使用系统缺省名称,如“文本框1”、“文本框2”这样前面是固定的字符串,后面是序号的,可以使用For...Next 语句遍历图形,如下面的代码所示。

1.Sub ErgShapes_1()
2. Dim i As Integer
3. For i = 1 To 4
4. Sheet1.Shapes("文本框 " & i).TextFrame.Characters.Text = ""
5. Next
6.End Sub
代码解析:
ErgShapes_1过程清除工作表中四个图形文本框中的文字。

第3行到第5行代码,使用Shapes属性在工作表上的三个图形文本框中循环。

Shapes属性返回Shapes对象,代表工作表或图形工作表上的所有图形,可以使用Shapes (index)返回单个的Shape对象,其中index是图形的名称或索引号。

返回单个的Shape对象后使用TextFrame 属性和Characters方法清除文本框中的字符,关于Shape对象的TextFrame 属性和Characters方法请参阅技巧53 。

如果图形的名称没有规律,可以使用For Each...Next 语句循环遍历所有图形,根据Type 属性返回的图形类型进行相应的操作,如下面的代码所示。

1.Sub ErgShapes_2()
2. Dim myShape As Shape
3. Dim i As Integer
4. i = 1
5. For Each myShape In Sheet1.Shapes
6. If myShape.Type = msoTextBox Then
7. myShape.TextFrame.Characters.Text = "这是第" & i & "个文本框"
8. i = i + 1
9. End If
10. Next
11.End Sub
代码解析:
ErgShapes_2过程在工作表中的所有图形文本框中写入文本。

第5行代码使用For Each...Next 语句循环遍历工作表中所有的图形对象。

第6行到第9行代码如果图形对象是文本框则在文本框中写入文本。

其中第6行代码根据Type属性判断图形对象是否为文本框,应用于Shape对象的Type属性返回或设置图形类型,MsoShapeType类型,请参阅表格54 1 。

第7行代码根据返回的Type属性值在所有的文本框内写入相应的文本,如图1所示。

图1 遍历所有的文本框。

相关主题