2017-11-07 9 views
0

「定理証明」で始まる段落を赤でマークしたいと思います。私のコードは以下の通りです「定理証明」で始まる段落を見つけよう

Sub theorem() 
    Dim p As Paragraph, d As Document 
     For Each p In ActiveDocument 
     If p.Range.Words(1) = "Proof " And p.range.words(2) = "of " and p.Range.Words(3) = "theorem " Then 
       End If 
    End Sub 

私はこの方法を感じる「If p.Range.Words(1) = "Proof " And p.range.words(2) = "of " and p.Range.Words(3) = "theorem "は」かさばるです。より簡潔な方法やその他のヒントがあるかどうか尋ねたいと思います。

+1

を(と私はWordオブジェクトについてはほとんど知っていますモデルなので存在しないかもしれません)もしあなたが 'If Left(p.Range.Text、16)="定理証明 "Then'のようなことをする可能性があります。 OK、それを試してみました。 – YowE3K

+0

@ YowE3K Perfect solution、thanks –

+1

またはInstr(1、Trim(p.Range.Text)、 "定理証明"、vbTextCompare)= 1 Then'を試してください。このコードは、検索文字列の大文字とは無関係に、たとえ誰かが間違ってスペースを置いたとしても、段落を識別します。 – Variatus

答えて

1

は、あなただけの段落の最初の16個の文字を取得するために、Left機能を使用し、そのテストすることができ: `Range.Text`方法がある場合は

Sub theorem() 
    Dim p As Paragraph, d As Document 
    For Each p In ActiveDocument.Paragraphs 
     If Left(p.Range.Text, 16) = "Proof of theorem" Then 
      p.Range.Font.ColorIndex = wdRed 
     End If 
    Next 
End Sub 
関連する問題