4

以下に示すようにフォーマットされた行のグループの複数のコピーを挿入する必要がありました。

+---------------------------------------------------------------- +
| | 1,1 |
+---------------------------------------------------------------- +
| | | | 2,2 | | | 2,4 | | |
| | 2,1 +---------+ 2,3 +---------+ 2,5 |
| | | | 3,2 | | | 3,4 | | |
+---------------------------------------------------------------- +
| | 4,1 |
+---------------------------------------------------------------- +
| | | | 5,2 | | | 5,4 | | |
| | 5,1 +---------+ 5,3 +---------+ 5,5 |
| | | | 6,2 | | | 6,4 | | |
+---------------------------------------------------------------- +

ケース A では、行 4 の前に挿入された行 1 ~ 3 の複数のコピーが必要でした。

ケース B では、テーブルの最後に挿入された行 4 ~ 6 の複数のコピーが必要でした。

table.rows(n) メソッドが機能せず、次のエラーが発生します。

実行時エラー '5991':

表のセルが垂直方向に結合されているため、このコレクションの個々の行にアクセスできません

ただし、これはユーザー インターフェイスから実行できるため、可能である必要があります。

4

1 に答える 1

5

これが私が問題を克服した方法です(Word 2007およびWord 2003でテスト済み)

Sub CaseA()

    Dim D As Document, T As Table

    Set D = ActiveDocument

    Set T = D.Tables(1)     '   select the first table in the document
                '   select from the start of row 1 to the start of row 4
    D.Range(T.Cell(2, 1).Range.Start, T.Cell(4, 1).Range.Start).Select

    Selection.Copy          '   copy the rows
                            '   move the insertion point to the start of row 4
    Selection.Collapse wdCollapseEnd 

    Selection.Paste         '   insert a copy
                                    '   (can do this as many times as you want)

End Sub

Sub CaseB()

    Dim D As Document, T As Table

    Set D = ActiveDocument

    Set T = D.Tables(1)
' select from the start of row 5 to the end of the last cell present in row 6
' plus 1 character for column 5 plus 1 character to move outside the table
    D.Range(T.Cell(5, 1).Range.Start, T.Cell(6, 4).Range.End + 2).Select

    Selection.Copy          '   copy the rows
                            '   move the insertion point just outside the table
    Selection.Collapse wdCollapseEnd

    Selection.Paste         '   insert a copy

End Sub
于 2013-02-01T11:43:09.030 に答える