1

ヘッダーとフッターは、delete コマンドを使用して削除できます。しかし、シェイプ以外のヘッダー/フッターからすべてを削除したいです。TextRange と ShapesRange の 2 つの範囲があります。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="" を設定すると、テーブル、テキストボックスが削除されますか?

4

1 に答える 1

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

スナップショット

ここに画像の説明を入力

于 2012-06-05T01:40:33.003 に答える