2

Wordテーブルの行を確実に下に移動するにはどうすればよいですか?
これがテーブルの構造です。最初の列と2番目の列の両方に複数の行と段落を含めることができることに注意してください。

Rule ID         1

Logic           Date must be equal to or greater than 01-Jan-2012 

Discrepancy     Date is before 01-Jan-2012
message

Test case 1.1   Create form where Date is before 01-Jan-2012 
                Verify discrepancy message appears.
                Print form.

Test case 1.2   Create form where Date is equal to 01-Jan-2012.
                Verify no discrepancy message appears.
                Print form.

Test case 1.3   Create form where Date is after 01-Jan-2012.
                Verify no discrepancy message appears.
                Print form.

私はテーブルを下に移動するためにいくつかの方法を試しました。

(以下)を試しSelection.MoveDownてみるとunit:=wdLine、列1にワードラップが含まれているときに問題が発生しました。

Selection.MoveDown unit:=wdLine, Count:=1, Extend:=wdMove

(下記)を試しSelection.MoveDownてみるとunit:=wdParagraph、2列目に複数の段落が含まれていると問題が発生しました。

Selection.MoveDown unit:=wdParagraph, Count:=3 

unit:=wdRowの有効なパラメータではないようですSelection.MoveDown
Selection.Cells(1).RowIndex読み取り専用パラメータです

列1の単語の折り返しと列2の複数の段落の両方を処理する、一度に1行ずつテーブルを下に移動する簡単な方法を知っている人はいますか?

4

2 に答える 2

3

このようなことを試してください。これは、Word文書内のすべてのテーブルの各行と列をループするための一般化されたアルゴリズムです。必要に応じて変更します(テストされていないコード):

Sub ModifyAllTables()
  Dim oTbl As Table
  Dim oRow As Row
  Dim oRng As Range
  For Each oTbl In ActiveDocument.Tables
    For Each oRow In oTbl.Rows
      ' Select the cell in column 2.
      Set oRng = oRow.Cells(2).Range
      ' and do something with it...
      'e.g. oRng.TypeText "modified"
    Next
  Next
End Sub
于 2013-01-14T21:36:29.480 に答える
2
Sub NextRow()

    Dim c As Long, r As Long

    With Selection
        'ignore if not in table
        If .Information(wdWithInTable) Then

            c = .Columns(1).Index
            r = .Rows(1).Index

            If .Rows(1).Parent.Rows.Count >= r + 1 Then
                .Rows(1).Parent.Rows(r + 1).Cells(c).Range.Select
            End If
        End If
    End With

End Sub
于 2013-01-14T21:49:30.967 に答える