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
'カーソル位置に表を挿入する。
'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
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
コメント
[…] 「二次元配列から表作成」Word文書に表を挿入するためのマクロは「Wordのマクロで表を作成する」に書かれていますので、これを使います。 […]