Excel VBAを使用してWord文書内のキーワード書体を一括変更する方法

この記事では、Excel VBAを使用してWord文書内の特定のキーワードの書体を一括で変更する方法について詳しく解説します。具体的なコード例、その詳細な解説、さらには応用例を踏まえて、この技術の魅力と可能性をお伝えします。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

基本的なコードの説明

Word文書内のキーワードを特定し、その書体を一括で変更するための基本的なVBAコードは以下のとおりです。


Sub ChangeFontStyleInWord()

    Dim WordApp As Object
    Dim WordDoc As Object
    Dim WordRange As Object
    Dim SearchKeyword As String

    ' Wordアプリケーションのインスタンスを生成
    Set WordApp = CreateObject("Word.Application")

    ' Word文書を開く
    Set WordDoc = WordApp.Documents.Open("C:\path\to\your\document.docx")

    ' 検索キーワードを設定
    SearchKeyword = "YOUR_KEYWORD"

    ' キーワードを検索し、書体を変更
    For Each WordRange In WordDoc.Content.Find.Execute(FindText:=SearchKeyword, Forward:=True, Format:=False, Wrap:=1).Found
        WordRange.Font.Name = "Arial"
        WordRange.Font.Size = 14
    Next WordRange

    ' Word文書を保存して閉じる
    WordDoc.Close SaveChanges:=True
    Set WordDoc = Nothing

    ' Wordアプリケーションを終了
    WordApp.Quit
    Set WordApp = Nothing

End Sub

コードの詳細解説

このコードは、指定されたWord文書内で特定のキーワードを検索し、そのキーワードの書体を変更する機能を持っています。

1. Wordアプリケーションのインスタンスを生成します。
2. 指定のパスでWord文書を開きます。
3. キーワードを設定します。このキーワードがWord文書内で検索され、書体が変更される対象となります。
4. キーワードを検索し、その書体をArial、サイズ14に変更します。
5. 最後に、変更を保存してWord文書を閉じ、Wordアプリケーションを終了します。

応用例

1. 複数のキーワードの書体を一括で変更

特定のキーワードだけでなく、複数のキーワードの書体を一括で変更したい場合のコード例とその解説を以下に示します。


Sub ChangeMultipleKeywordsFontStyle()

    '...前述のコードの続き...

    ' 複数のキーワードを設定
    Dim Keywords As Variant
    Keywords = Array("KEYWORD1", "KEYWORD2", "KEYWORD3")

    Dim keyword As Variant
    For Each keyword In Keywords
        For Each WordRange In WordDoc.Content.Find.Execute(FindText:=keyword, Forward:=True, Format:=False, Wrap:=1).Found
            WordRange.Font.Name = "Arial"
            WordRange.Font.Size = 14
        Next WordRange
    Next keyword

    '...後続のコード...

End Sub

2. 特定のキーワードのみ太字にする


Sub BoldSpecificKeyword()

    '...前述のコードの続き...

    ' キーワードを検索し、太字に設定
    For Each WordRange In WordDoc.Content.Find.Execute(FindText:=SearchKeyword, Forward:=True, Format:=False, Wrap:=1).Found
        WordRange.Font.Bold = True
    Next WordRange

    '...後続のコード...

End Sub

3. キーワードの前後に文字を追加


Sub AddTextBeforeAfterKeyword()

    '...前述のコードの続き...

    ' キーワードの前後に文字を追加
    For Each WordRange In WordDoc.Content.Find.Execute(FindText:=SearchKeyword, Forward:=True, Format:=False, Wrap:=1).Found
        WordRange.InsertBefore "【"
        WordRange.InsertAfter "】"
    Next WordRange

    '...後続のコード...

End Sub

まとめ

Excel VBAを使用することで、Word文書内の特定のキーワードの書体を一括で変更することが可能です。基本的な方法から応用例まで、さまざまなケースでの対応方法を学びました。これを機に、VBAを利用して日常の作業をより効率的に進める方法を探求してみてください。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次