VBA 如何访问插入在文档中的控件对象
我在Word文档中插入了一个Label1标签控件,然后打开VBA编辑器,添加一个模块和一个用户自定义窗体UserForm1,而在UserForm1窗体的模块代码中,需要访...
我在Word文档中插入了一个Label1标签控件,然后打开VBA编辑器,添加一个模块和一个用户自定义窗体UserForm1,而在UserForm1窗体的模块代码中,需要访问Word文档中的Label1控件中的相关属性,但是不知道怎么访问。
如果是Word2007版本,可以用 Thisdocument.Label1来访问;但在Word2000/2003中,却不用ThisDocument.Lablel1的方式访问了,有谁知道该怎么访问呢?ThisDocument.Content.Inlineshapes的方式好像不行?
自己摸索出来了一种方法:
Dim Lab As Shape
'或者 DIm Lab As InlineShape
Set Lab = ActiveDocument.Shapes.AddOLEControl(ClassType:="Forms.Label.1")
With Lab.OLEFormat.Object '在这里操作其属性,对属性进行赋值
.AutoSize = True
.WordWrap = False
.Caption = "编号:No.0001"
.AutoSize = True
.Top = 0 - ActiveDocument.PageSetup.TopMargin * 0.3 '设置创建的Label1控件在位置
.Left = ActiveDocument.PageSetup.PageWidth - ActiveDocument.PageSetup.LeftMargin - ActiveDocument.PageSetup.RightMargin - .Width
NoTmp=val(.Caption) '获取其属性值
End With
Private Sub UserForm_Terminate()
Lab.Delete '控件完成使命后,删除之
End Sub
其他的控件操作访问方式应该类似的吧? 展开
如果是Word2007版本,可以用 Thisdocument.Label1来访问;但在Word2000/2003中,却不用ThisDocument.Lablel1的方式访问了,有谁知道该怎么访问呢?ThisDocument.Content.Inlineshapes的方式好像不行?
自己摸索出来了一种方法:
Dim Lab As Shape
'或者 DIm Lab As InlineShape
Set Lab = ActiveDocument.Shapes.AddOLEControl(ClassType:="Forms.Label.1")
With Lab.OLEFormat.Object '在这里操作其属性,对属性进行赋值
.AutoSize = True
.WordWrap = False
.Caption = "编号:No.0001"
.AutoSize = True
.Top = 0 - ActiveDocument.PageSetup.TopMargin * 0.3 '设置创建的Label1控件在位置
.Left = ActiveDocument.PageSetup.PageWidth - ActiveDocument.PageSetup.LeftMargin - ActiveDocument.PageSetup.RightMargin - .Width
NoTmp=val(.Caption) '获取其属性值
End With
Private Sub UserForm_Terminate()
Lab.Delete '控件完成使命后,删除之
End Sub
其他的控件操作访问方式应该类似的吧? 展开
2011-09-04
展开全部
参考:
Dim Lab As InlineShape
Set Lab = Selection.InlineShapes.AddOLEControl(ClassType:="Forms.Label.1")
Lab. 输入这个点之后其所有属性都会自动列出。
Dim Lab As InlineShape
Set Lab = Selection.InlineShapes.AddOLEControl(ClassType:="Forms.Label.1")
Lab. 输入这个点之后其所有属性都会自动列出。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询