Wordのマクロで表を作成する

Wordのマクロを使って表を作成する方法です。
データを二次元配列で与えるとWordのカーソル位置に表を挿入しセル毎にデータを貼り付けていきます。Word2007で確認しました。

二次元配列から表作成

メインとなる関数は次の通りです。

Function 二次元配列から表作成(cells)
    'カーソル位置に表を挿入する。
    'cellsは二次元配列。cells(1,1)が最初のセル。
    Dim x, y, i As Long
    Dim gyosu, retsusu
    x = 0
    Do
        x = x + 1
    Loop Until cells(x, 1) = ""
    gyosu = x - 1
    y = 0
    Do
        y = y + 1
    Loop Until cells(1, y) = ""
    retsusu = y - 1
    ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=gyosu, NumColumns:=retsusu
    For i = 0 To retsusu * gyosu - 1
        Selection.TypeText Text:=cells(Int(i / retsusu) + 1, i Mod retsusu + 1)
        If i < retsusu * gyosu - 1 Then
            '最後のセルでタブを押すと行挿入されてしまうため。
            Selection.MoveRight Unit:=wdCell
        End If
    Next i
End Function

サンプル

「二次元配列から表作成」を使ったサンプルです。8行×4列の表を作成します。

Sub 表作成サンプル()
    Dim arrs(100, 100)
    Dim i, j As Long
    For i = 1 To 8
        For j = 1 To 4
            arrs(i, j) = i & "/" & j
        Next j
    Next i
    Call 二次元配列から表作成(arrs)
End Sub

コメント

  1. […] 「二次元配列から表作成」Word文書に表を挿入するためのマクロは「Wordのマクロで表を作成する」に書かれていますので、これを使います。 […]

タイトルとURLをコピーしました