下面是两组删除文本框的VBA代码,第一组用于MS Excel,第二组用于MS Word。两者之间的唯一区别是“活跃”之后的第三行。
我正在尝试在新打开的电子邮件中复制MS Outlook中的此操作,但缺乏正确的代码术语的知识...有没有人知道答案?...谢谢,
Sub RemoveTextBox()
Dim shp As Shape
For Each shp In ActiveSheet.Shapes
If shp.Type = msoTextBox Then shp.Delete
Next shp
End Sub
Sub RemoveTextBox()
Dim shp As Shape
For Each shp In ActiveDocument.Shapes
If shp.Type = msoTextBox Then shp.Delete
Next shp
End Sub
答案 0 :(得分:1)
对于Outlook,它将类似于以下示例
Option Explicit
Public Sub Example()
Dim Inspector As Outlook.Inspector
Dim wdDoc As Word.Document
Dim Shp As Word.Shape
Set Inspector = Application.ActiveInspector()
Set wdDoc = Inspector.WordEditor
For Each Shp In wdDoc.Shapes
Debug.Print Shp.Type 'msoTextBox = 17 - Print on Immediate Window
If Shp.Type = msoTextBox Then Shp.Delete
Next
End Sub
使用 Application.ActiveInspector Method (Outlook) 和 Inspector.WordEditor Property (Outlook) 打开电子邮件
Inspector.WordEditor Property (Outlook) 返回正在显示的邮件的Microsoft Word文档对象模型。只读,WordEditor属性仅在IsWordMail方法返回True且EditorType属性为olEditorWord时有效。返回的WordDocument对象提供对大多数Word对象模型的访问,但以下成员除外:
Application.ActiveInspector Method (Outlook) 返回桌面上最顶层的 Inspector 对象。 子> 的
<强> Remember to add reference to word xx object library 强>
<子> 1。从“工具”菜单中,选择“引用”以显示“引用”对话框。
<子> 2。 “引用”对话框显示向操作系统注册的所有对象库。滚动浏览要引用其对象库的应用程序的列表。如果未列出应用程序,则可以使用“浏览”按钮搜索对象库( .olb和 .tlb)或可执行文件( .exe和Windows上的 .dll)。检查复选框的引用将由您的项目使用;那些未经过检查的人不会被使用,但可以添加。