2

テキストパターンを見つけてスタイルを適用するマクロに取り組んでいます。

ドキュメントの内容:

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
4

2 に答える 2

0

残念ながら、2つの異なるスタイルタイプを同じ行(事実上、段落またはその一部)で組み合わせる唯一の方法は、characterスタイルを使用することですが、とにかくそれが必要なものではない可能性があります。

Word文書では、通常、見出しなどのテキストの主要部分に段落スタイルを使用し、必要に応じて段落スタイルに加えて段落スタイルを使用します。たとえば、組み込みのWord文字スタイルは、脚注とページ番号に使用されます。

詳細については、http: //office.microsoft.com/en-us/word-help/understanding-paragraph-character-list-and-table-styles-HA001187614.aspxを参照してください。

同じラインで異なるスタイルを組み合わせたい理由はありますか?

于 2013-02-27T08:46:04.700 に答える