4

Word で単語または段落を選択した場合、VBA を使用して最も近い前の見出しのテキストを見つける方法はありますか?

例えば:

見出しレベル 1: メイン タイトル これはドキュメントに関する段落です。(A) 見出しレベル 2: サブタイトル この段落は詳細を記述します。(B)

(B)のどこかが選択されていれば、「A Sub Title」を探したいです。(A)のどこかが選択されていれば、「The Main Title」を探したいです。

4

2 に答える 2

3

WdGoToItem前の見出しに向けて特別なことがあります:

Dim heading As Range
Set heading = selection.GoTo(What:=wdGoToHeading, Which:=wdGoToPrevious)

' Display heading text
heading.Expand Unit:=wdParagraph
MsgBox heading.Text

ドキュメント内の任意の場所から現在の見出しレベル全体を取得する、あまり知られていないトリックを次に示します。

Dim headingLevel as Range
' headingLevel encompasses the region under the preceding heading
Set headingLevel = Selection.GoTo(What:=wdGoToBookmark, Name:="\HeadingLevel")
于 2015-05-29T22:52:28.963 に答える
2

これはあなたがしようとしていることですか?

Option Explicit

Sub Sample()
    Do
        Selection.MoveUp Unit:=wdLine, Count:=1

        Selection.HomeKey Unit:=wdLine
        Selection.EndKey Unit:=wdLine, Extend:=wdExtend

        If ActiveDocument.ActiveWindow.Selection.Information(wdFirstCharacterLineNumber) = 1 Then Exit Do
    Loop Until Selection.Style <> "Normal"

    MsgBox Selection.Style
End Sub

サンショット

ここに画像の説明を入力

于 2012-06-05T02:17:23.263 に答える