0

VBA コードを使用して、Word 文書から見出しに含まれるセクションを削除しようとしています。私の状況では、セクションとは、画面の左側にあるナビゲーション ペインのリストを指します。

たとえば、「はじめに」という最上位の見出しを検索して削除すると、次の最上位の見出しは「本文」になり、その下に 3 つのサブセクションがあります。「本文」セクションを選択して削除します。Word自体で行うのは非常に簡単ですが、VBAで行いたいと思います。ナビゲーション ウィンドウから削除しているときにマクロを記録しようとしましたが、何も記録されません。

編集:代わりに、VBAを使用して見出しを強調表示し、その下から同じサイズまたはそれ以上のサイズの見出しまですべてを強調表示することもできます。

アイデアや提案は大歓迎です、ありがとう!

4

1 に答える 1

0

「マクロの記録」機能は、マウスを使用してのみセクションを選択できるため、何も記録しません。「マクロの記録」ツールはマウスではうまく機能しないことが知られています。問題を解決するために、Wordでさまざまなことを試しました。編集ですでに述べたように、最も簡単で簡単な方法は、別の見出しまたはテキストの終わりに達するまで、以下のすべてのテキストを削除することだと思います。

Selection.Find.ClearFormatting
With Selection.Find
    .Text = "Introduction"
    .Replacement.Text = ""
    .Forward = True
    .Wrap = wdFindContinue
    .Format = False
    .MatchCase = False
    .MatchWholeWord = False
    .MatchKashida = False
    .MatchDiacritics = False
    .MatchAlefHamza = False
    .MatchControl = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
End With
Selection.Find.Execute
unitsDeleted = Selection.Delete(wdCharacter, 2)
While (Selection.Style <> ActiveDocument.Styles("Heading 1")) And (unitsDeleted <> 0)
     unitsDeleted = Selection.Delete
Wend

つまり、ドキュメント内の「はじめに」文字列を検索しています。次に、現在の文字のスタイルが「見出し1」(または、指定した別のスタイル)になるまで、すべての文字を削除します。「Heading1」など、特定のスタイルの「Introduction」という単語を検索することもできます。マクロを記録し、それがどのように実行されるかを確認します。

于 2012-07-27T12:11:20.400 に答える