Excel VBA实例教程 #056:遍历工作表中的图形

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

工作表中的多个图形,如果使用系统缺省名称,如“文本框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 遍历所有的文本框

相关文档
最新文档