2017-01-23 7 views
0

次の表があります。リピートセクションコンテンツコントロール内にネストされた個々のコンテンツコントロールのアドレス指定

word

各セルは、個々のプレーンテキストのコンテキストコントロールを表します。その後、行全体は、「ENTRY」とタグ付けされた繰り返しセクション・コンテキスト・コントロール(「RSCC」)でラップされます。ご存知のように、私はこのような行を追加することができます。

Sub MACRO1() 
' 
' MACRO1 Macro 
' 

Dim anchor_cc As ContentControl 

Set anchor_cc = ActiveDocument.SelectContentControlsByTag("ENTRY").Item(1) 

' Add one more row 
total = 1 
For counter = 1 To total 
    With anchor_cc 
     .AllowInsertDeleteSection = True 
     .RepeatingSectionItems(1).InsertItemAfter 
    End With 
Next counter 

End Sub 

私はまた、このような個人 RSCCに対処しているダイアログボックスの出力行全体のテキストコンテンツを意志することができます

Sub MACRO2() 
Dim anchor_cc As ContentControl 

Set anchor_cc = ActiveDocument.SelectContentControlsByTag("ENTRY").Item(1) 

With anchor_cc 
    For counter = 1 To .RepeatingSectionItems.Count 
     MsgBox (.RepeatingSectionItems(counter).Range) 
    Next counter 
End With 

End Sub 

どのようにしてそのRSCC内の個々のセルにアドレス指定できますか?たとえば、最初の行の最初のセルにアドレスしたいとします。最初の行に対処するのは簡単です。私はちょうど、すなわち1から.RepeatingSectionItems指数、私はその行の最初のセルにアクセスするにはどうすればよい

.RepeatingSectionItems(1)

を設定することができますか?または、番目のセルですか?セルは個々のプレーンテキストコンテキストコントロールであることに注意してください。それが答えを変えるかどうかは分かりません。

答えて

0

私はWord 2013または2016に付属していると信じている.RepeatingSectionItemsプロパティを使用することはできません(この時点で私はMS Word 2010の前です)。

最初の行を参照するために、このロジックを試してみてください(あなたがtechinqueを使用することができます)、次の非常に単純にこの行に必要なセルを参照してください。

Dim ccEntry As ContentControl 
Set ccEntry = ActiveDocument.SelectContentControlsByTitle("ENTRY")(1) 

'to get row... 
Dim tblRow As Row 
Set tblRow = ccEntry.Range.Tables(1).Rows(ccEntry.Range.Information(wdEndOfRangeRowNumber)) 

'get first cell 
Dim tblCell As Cell 
Set tblCell = tblRow.Cells(1) 
    Debug.Print tblCell.Range.Text 
関連する問題