2012-05-13 5 views
1

削除コマンドを使用すると、ヘッダーとフッターを削除できます。しかし、Shapesを除くヘッダー/フッターのすべてを削除したい。 TextRangeとShapesRangeの2つの範囲があります。 ShapeRangeには以下のようにアクセスできます。shaperange以外のヘッダーとフッターの削除方法

For Each sec In worddoc.Sections 
     For Each hdr In sec.Headers 
      For Each sh In hdr.Shapes 
       If sh.Left > 200 Then 
        'Do something 
       End If 
      Next sh 
     Next hdr 
    Next sec 

TextRangeを削除するには?

設定すると.TextRange = ""はテーブル、テキストボックスを削除しますか? 緊急です。あなたの助けは非常に高く評価されます!

+0

私はすべてのテキスト、フィールド(テキストボックス)、形状を除いヘッダからテーブルを削除したいです。 – Jan2012

答えて

2

これは必要なものですか?

Option Explicit 

Sub Sample() 
    Dim ctl As ContentControl 
    Dim tbl As Table 
    Dim i As Long 

    With ActiveDocument.Sections(1).Headers(wdHeaderFooterPrimary).Range 

     On Error Resume Next 
     '~~> Delete all controls like textbox label etc 
     For Each ctl In .ContentControls 
      ctl.Delete 
     Next 

     '~~> Delete all tables 
     For Each tbl In .Tables 
      tbl.Delete 
     Next 
     On Error GoTo 0 

     '~~> Delete all printable/non printable characters 
     For i = 0 To 255 
      With .Find 
       .ClearFormatting 
       .Replacement.ClearFormatting 
       .Text = Chr(i) 
       .Replacement.Text = "" 
       .Forward = True 
       .Wrap = wdFindContinue 
       .Execute Replace:=wdReplaceAll 
      End With 
     Next i 
    End With 

    MsgBox "Done" 

End Sub 

SNAPSHOT

enter image description here