删除文档中的所有文本框(Microsoft Word)
如果您要处理其他人的文档,则可能需要删除这些文档中的文本框。如果文档中只有一个或两个文本框,则选择并删除它们并不难。但是,如果有30、40或更多的文本框怎么办?
单独删除它们会很快变得乏味。
一种可能的解决方案是“蛮力”方法。请按照下列步骤操作:
。在文档中,按Ctrl + A。整个文档被选中。
。按Ctrl + C。该文档现在位于剪贴板上。
。打开一个新的空白文档。
。从编辑菜单中选择选择性粘贴。 Word将显示“选择性粘贴”对话框。 (请参见图1。)
。在格式列表中,选择“未格式化的文本”。
。单击确定。
减去文本框的文档文本现在位于新文档中。这种方法的明显缺点是,原始文档的其他格式也丢失了,您必须重新格式化整个文档。 (我告诉过您,这是蛮力方法。)
如果只想摆脱文本框,那么最快的解决方案是使用宏。以下宏将快速删除文档中的所有文本框:
Sub RemoveTextBox1() Dim shp As Shape For Each shp In ActiveDocument.Shapes If shp.Type = msoTextBox Then shp.Delete Next shp End Sub
您应该意识到此宏将删除所有文本框及其内容。换句话说,如果使用文本框放置文本,则该文本框中的文本将与文本框本身一起删除。
如果您希望将文本从文本框传输到文档,则在删除文本框之前,可以对上述宏进行稍作修改:
Sub RemoveTextBox2() Dim shp As Shape Dim oRngAnchor As Range Dim sString As String For Each shp In ActiveDocument.Shapes If shp.Type = msoTextBox Then ' copy text to string, without last paragraph mark sString = Left(shp.TextFrame.TextRange.Text, _ shp.TextFrame.TextRange.Characters.Count - 1) If Len(sString) > 0 Then ' set the range to insert the text Set oRngAnchor = shp.Anchor.Paragraphs(1).Range ' insert the textbox text before the range object oRngAnchor.InsertBefore _ "Textbox start << " & sString & " >> Textbox end" End If shp.delete End If Next shp End Sub
完成此宏后,您可以搜索“文本框开始”,并且您将位于文本的开头,该文本曾经位于现在已从文档中删除的文本框中。然后,您可以编辑文本,以便根据需要显示文本。
注意:
如果您想知道如何使用此页面(或_WordTips_网站上的任何其他页面)中描述的宏,我准备了一个包含有用信息的特殊页面。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)本技巧(1690)适用于Microsoft Word 97、2000、2002和2003。您可以为Word(Word 2007)的功能区界面找到此技巧的版本。和更高版本)在这里: