dポイントプレゼントキャンペーン実施中!

Visual Basic でワードの表を操作する際の方法をお伺いします。

通常は、Cellメソッドを利用して、

 ActiveDocument.Tables(1).Cell(2,3)

のように、Cellメソッドに行・列を引数として与えますが、セルが結合されている場合に引数はどのように指定するのでしょうか。

会社のPCだと結合されたセルは飛ばして列数を数えているようでしたが、自分のPCだと結合されたセルも数えています。結合されている(他に併合された)セルの行・列を指定するとエラーがでます。

Wordのバージョンによっても違うのでしょうか。あるいはTableオブジェクトのプロパティか何かを指定することで、結合されたセルを数えるかどうかを指定できるのでしょうか。

A 回答 (1件)

Sub test01()


On Error GoTo e1
MsgBox ActiveDocument.Tables(1).Rows.Count
For i = 1 To ActiveDocument.Tables(1).Rows.Count
For j = 1 To ActiveDocument.Tables(1).Columns.Count
MsgBox ActiveDocument.Tables(1).Cell(i, j)
Next j
Next i
Exit Sub
e1:
MsgBox i & "行" & j & "列エラー"
Resume Next
End Sub
を作って実行してみました。それから推測すると
>会社のPCだと結合されたセルは飛ばして列数を数えているようでしたが
マージ(結合)されたとき、セルの要素に、ワードが何かサインを立てるのではないでしょうか。
列数というもの(行数というものも)は結合したからといって、変わらないと思いますが。
ただし各列について全列で、上下行を結合すると、ActiveDocument.Tables(1).Rows.Count
が1つ減るようですが。
>Tableオブジェクトのプロパティか何かを指定することで・・
多分そういう考え方ではないと思います。
「表を操作する」とき、どういう点で困っているのでしょうか。

この回答への補足

ありがとうございます。
表を操作するというのは、実はWordで定型帳票を作成していて、Excelではその内容をデータベース化しています。ExcelのデータをWordの表に書き込むために、
 Cell(row, column).Text = ~~~
のような処理をしています。逆にWordの表からExcelへデータを戻すことも考えています。
こうした処理の中で、Wordの定型帳票が結構複雑で、セルの結合や削除をした結果、行ごとに列数がバラバラになっているので、VBからの操作で苦労しております。

Word版のVBのマニュアルで良いモノが見あたらず、その意味でも苦労している状況です。

補足日時:2005/12/07 10:29
    • good
    • 3

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています