Excel VBAでWordのテーブルスタイルを一括変更する方法と応用例

この記事では、Excel VBAを使用してWordのテーブルスタイルを一括で統一する方法について詳しく説明します。初心者でも理解しやすいように具体的なコード例とその解説、応用例を含めてご紹介します。

目次

Excel VBAの基本

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

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

Wordのテーブルスタイルを一括で統一する方法

Wordのドキュメント内には、さまざまなテーブルスタイルが適用されている場合があります。しかし、特定の書式に統一したい場面が出てくることがよくあります。このセクションでは、そのためのVBAコードとその動作を解説します。


Sub ChangeTableStyle()
    Dim objWord As Object
    Dim objDoc As Object
    Dim tbl As Object
    Dim strStyle As String

    ' Word アプリケーションの参照を設定
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True

    ' Word ドキュメントを開く
    Set objDoc = objWord.Documents.Open("C:\path\to\your\document.docx")

    ' 統一したいテーブルスタイルを設定
    strStyle = "Table Grid"

    ' ドキュメント内の全てのテーブルにスタイルを適用
    For Each tbl In objDoc.Tables
        tbl.Style = strStyle
    Next tbl

    ' ドキュメントを保存して閉じる
    objDoc.Save
    objDoc.Close

    ' Word アプリケーションを終了
    objWord.Quit
End Sub

このコードでは、指定されたWordドキュメントの全テーブルスタイルを「Table Grid」というスタイルに一括で変更しています。パスやスタイル名は適宜変更してください。

コードの解説

1. まず、Wordアプリケーションとドキュメントオブジェクトの変数を定義します。
2. 次に、Wordアプリケーションを開き、指定のドキュメントを読み込みます。
3. 使用するテーブルスタイル名を文字列として設定します。
4. ドキュメント内の全テーブルをループして、各テーブルにスタイルを適用します。
5. 最後に、ドキュメントを保存し、Wordアプリケーションを終了します。

応用例1: 複数のドキュメントに適用する

特定のフォルダにあるすべてのWordドキュメントに対して、テーブルスタイルを統一したい場合のコード例と解説を示します。


Sub ChangeTableStyleForMultipleDocs()
    Dim objWord As Object
    Dim objDoc As Object
    Dim tbl As Object
    Dim strStyle As String
    Dim strFolder As String
    Dim strFile As String
    ' Word アプリケーションの参照を設定
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    ' 対象フォルダを設定
    strFolder = "C:\path\to\your\documents\"
    strFile = Dir(strFolder & "*.docx")
    ' 統一したいテーブルスタイルを設定
    strStyle = "Table Grid"
    Do While strFile <> ""
        Set objDoc = objWord.Documents.Open(strFolder & strFile)
        ' ドキュメント内の全てのテーブルにスタイルを適用
        For Each tbl In objDoc.Tables
            tbl.Style = strStyle
        Next tbl
        objDoc.Save
        objDoc.Close
        strFile = Dir
    Loop
    objWord.Quit
End Sub

この応用例では、指定フォルダ内の全てのWordドキュメントに対して、テーブルスタイルを一括変更します。

応用例2: 特定のテーブルだけスタイルを変更する

特定の条件を満たすテーブルだけにスタイルを適用したい場合のコード例と解説を示します。


Sub ChangeStyleForSpecificTables()
    Dim objWord As Object
    Dim objDoc As Object
    Dim tbl As Object
    Dim strStyle As String

    ' Word アプリケーションの参照を設定
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True

    ' Word ドキュメントを開く
    Set objDoc = objWord.Documents.Open("C:\path\to\your\document.docx")

    ' 統一したいテーブルスタイルを設定
    strStyle = "Table Grid"

    ' ドキュメント内の全てのテーブルに対して
    For Each tbl In objDoc.Tables
        ' 例: 10行以上のテーブルにのみスタイルを適用
        If tbl.Rows.Count >= 10 Then
            tbl.Style = strStyle
        End If
    Next tbl

    objDoc.Save
    objDoc.Close

    objWord.Quit
End Sub

このコードでは、10行以上のテーブルにのみ、「Table Grid」スタイルを適用しています。

応用例3: スタイル変更後に内容を変更する

テーブルのスタイルを変更した後、特定の内容も変更したい場合のコード例と

解説を示します。


Sub ChangeStyleAndContent()
    Dim objWord As Object
    Dim objDoc As Object
    Dim tbl As Object
    Dim strStyle As String

    ' Word アプリケーションの参照を設定
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True

    ' Word ドキュメントを開く
    Set objDoc = objWord.Documents.Open("C:\path\to\your\document.docx")

    ' 統一したいテーブルスタイルを設定
    strStyle = "Table Grid"

    ' ドキュメント内の全てのテーブルに対して
    For Each tbl In objDoc.Tables
        tbl.Style = strStyle
        ' 1行1列のセルの内容を変更
        tbl.Cell(1, 1).Range.Text = "新しい内容"
    Next tbl

    objDoc.Save
    objDoc.Close

    objWord.Quit
End Sub

このコードでは、テーブルスタイルを変更した後、各テーブルの1行1列目のセルの内容を「新しい内容」というテキストで上書きしています。

まとめ

WordのテーブルスタイルをExcel VBAを使用して一括で変更する方法や、それに関連する応用例を解説しました。これを機に、VBAの力を活用して、Wordのドキュメント編集を効率的に行ってみてください。

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

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

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

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

コメント

コメントする

目次