You can get the results you want, without the need for the buttons, using a ContentControlOnExit macro in the 'ThisDocument' code module of the document or its template coded like:
Private Sub Document_ContentControlOnExit(ByVal CCtrl As ContentControl, Cancel As Boolean)
'The following code conditionally adds a new table, with initialized content controls, following the current table.
Dim i As Long, j As Long, t As Long, Prot As Variant
Const Pwd As String = "" 'Insert password (if any) here
If CCtrl.Range.Information(wdWithInTable) = False Then Exit Sub
With CCtrl
i = .Range.Tables(1).Range.ContentControls.Count
'Get our ContentControl's index # in the table
j = ActiveDocument.Range(.Range.Tables(1).Range.Start, .Range.End).ContentControls.Count
'Check that we're using the last content control
If i <> j Then Exit Sub
'Solicit user input
If MsgBox("Add new table?", vbQuestion + vbYesNo) <> vbYes Then Exit Sub
With ActiveDocument
' Un-protect the document, if applicable
Prot = .ProtectionType
If .ProtectionType <> wdNoProtection Then
Prot = .ProtectionType
.Unprotect Password:=Pwd
End If
End With
t = ActiveDocument.Range(0, .Range.Start).Tables.Count + 1
With .Range.Tables(1).Rows.Last.Range
.Characters.Last.Next.InsertBefore vbCr & vbCr
.Characters.Last.Next.Next.FormattedText = .Tables(1).Range.FormattedText
End With
Call InitializeCCtrls(t)
With ActiveDocument
' Re-protect the document, if applicable
.Protect Type:=Prot, Password:=Pwd
End With
End With
End Sub
Sub InitializeCCtrls(t As Long)
Dim CCtrl As ContentControl
'Reset all content controls in the designated table
With ActiveDocument.Tables(t).Range
For Each CCtrl In .ContentControls
With CCtrl
Select Case .Type
Case wdContentControlCheckBox: .Checked = False
Case wdContentControlRichText, wdContentControlText, wdContentControlDate: .Range.Text = ""
Case wdContentControlDropdownList
.Type = wdContentControlText
.Range.Text = ""
.Type = wdContentControlDropdownList
Case wdContentControlComboBox
.Type = wdContentControlText
.Range.Text = ""
.Type = wdContentControlComboBox
End Select
End With
Next
End With
End Sub
This macro will prompt to add a new table anytime you exit the last content control in any table (assuming the table has at least one content control). If you give those content controls a title, you can test that so as to avoid the prompt etc. when exiting a table you never want to replicate.
Preventing a table from breaking across page breaks is a matter of using 'keep with next' paragraph formatting in all rows except the last.