A few things....
1. Your code below is based on using the "MS Forms" controls, rather than
the ActiveX controls that superceded them about 15 years ago.
2. Nonetheless, when I create an MS Forms textbox and checkbox as you
indicated, your code works perfectly fine as expected, so I don't know what
problem you thought would be created, but none was. The code also works
identically when the "=True" portion is omitted as I indicated.
3. If you use the modern ActiveX set of controls, the need to access them
via the more antiquated "ActiveDocument.FormFields("controlName")" paradigm
becomes irrelevant, you simply access the control via it's name, and can
immediately access its properties. For example:
If CheckBox1.Value Then
TextBox1.Text = "YES"
Else
TextBox1.Text = "NO"
End If
Ultimately, I fail to see whatever point you were trying to make. It is
true now and has always been true (in any language) that a compiler will
evaluate an "If" statement to see if its test expression is equal to the
Boolean 'True". So, when evaluating an expression that returns a Boolean
anyway, the extra check for True is simply redundant.
It's no different than writing:
If x = 7 = True then ... (which works, but no one would ever write)
vs.
If x = 7 Then ... (the compiler checkes to see if the results of the
expression is True without having to be told that this is what to look for)
-Scott