テキストパターンを見つけてスタイルを適用するマクロに取り組んでいます。
ドキュメントの内容:
Start-Style1Test HeadingEnd-Styles1Start-Style2 -これは段落です。End-Styles2
ここで、私のマクロは「Start-Style1 * End-Style1」を検索し、style1 を適用します。ここでは、"Test Heading" に style1 が適用されます。同様に、style2 についても同じことが行われます。見出しとコンテキストが異なる行にある場合、マクロは正常に機能します。
しかし、それが同じ行であれば。1 つのスタイルのみが適用されます。問題を深く掘り下げると、両方のスタイルの「段落」としてのスタイルタイプが原因であることがわかりました。
スタイルタイプとして「キャラクター」に変更すると、期待される出力を得ることができます。スタイルの種類を変えずにスタイルを適用したい。可能でしたら教えていただけないでしょうか。
これが私のコードです:
Application.ScreenUpdating = False
Dim RngStory As Range
Dim StrStart
Dim StrEnd
Dim Styles
StrStart = Array("Start-Style1", "Start-Style2")
StrEnd = Array("End-Style1", "End-Style2")
Styles = Array("Style1", "Style1")
For i = 0 To 1
Set RngStory = ActiveDocument.Range
With RngStory.Find
.ClearFormatting
.Text = StrStart(i) & "*" & StrEnd(i)
.Forward = True
'.Wrap = wdFindStop
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = True
.MatchSoundsLike = False
.MatchAllWordForms = False
.Replacement.Text = ""
Do While .Execute
With RngStory.Duplicate
.Start = .Start + Len(StrStart(i))
.End = .End - Len(StrEnd(i))
.Style = ActiveDocument.Styles(Styles(i))
.End = .End - Len(StrEnd(i))
.Collapse (wdCollapseEnd)
End With
Loop
End With
Next