2016-12-13 14 views
0

私はワード文書を検索して中央揃えのテキストを検索し、この書式を適用するマクロを作成しようとしています。Wordで中央揃えのテキストを検索して書式設定します。 - Macro/VBA

With Selection 
.Paragraphs.Alignment = wdAlignParagraphCenter 
.Font.Bold = wdToggle 
.Font.AllCaps = True 
End With 

私は

Selection.Find.Style = wdAlignParagraphCenter 

を試みたが、私はそれが簡単ではありませんと仮定します。

私は、これはショット、

Dim p As Paragraph 

For Each p In ActiveDocument.Paragraphs 
    If p.Alignment = wdAlignParagraphCenter Then 
     With Selection 
      .Font.Bold = wdToggle 
      .Font.AllCaps = True 
     End With 

    End If 
Next p 

しかし残念ながら運ました。

+0

実際のコードを表示する必要があります。例えば、 'Selection'の定義は何ですか? –

+0

私はうまくいけば、私の記事を更新しました。あなたがより多くの情報を必要とするかどうかを教えてください。ありがとう。 – Bp944

+0

コードは私のためにうまくいきました。どのようにコードを実行しますか?関数またはサブ?あなたはそれを段階的に実行しようとしましたか? –

答えて

0

はこれを試してみてください。

Sub Bold_All_Caps() 
    Dim p As Paragraph 

    For Each p In ActiveDocument.Paragraphs 
     If p.Alignment = wdAlignParagraphCenter Then 
      With p 
       .Range.Font.Bold = True 
       .Range.Font.AllCaps = True 
      End With 

     End If 
    Next p 
End Sub 

問題だった、あなたは(With一部に)のみ選択して変更を適用していること。段落に変更すると、それは機能します。

太字の書体を常に適用するのではなく、太字の書体を変更する場合は、.Range.Font.Bold = True.Range.Font.Bold = wdToggleに変更してください。 wdToggleは太字を太字にしません。

+0

恐ろしい!そうです。それで、p.rangeは、それが中心に位置することがわかっている段落全体を選択しますか? – Bp944

+0

コードは基本的に各段落( 'For Each ...')を通過し、段落がCenter( 'If p.Alignment ...')に整列しているかどうかを確認し、この段落書式を太字とallcapsに設定します。 しかし、スタイルタブの下にある機能をチェックしてください。「類似した書式のテキストをすべて選択」というオプションがあります。 –

+0

それは理にかなっています。私はその関数を使用するが、ドキュメントの書式/レイアウトに複数の異なることを行うマクロを作成しようとしている。次にリスト上で、箇条書きの点またはリストを特定のリストタイプに変更します。 - 少し話題ですが、あなたはこれらのリストの名前をどこから得ることができるのかわかりません。 Bulletpointは:wdListBulletです。 ありがとうございました。] - 編集:Nvmはそれをここで見つけました:http://www.thedoctools.com/index.php?show=mt_create_style_name_list :) – Bp944

関連する問題