Hello onsight,
In versions of Word after 2007, there are three types of control collections: FormField, InlineShapes (Active X), and the newest ContentControls.
The only types of InlineShapes that accept user input are TextBox, ComboBox, and ListBox.
Examples for Checking for different Collections...
' // Check for Content Controls
With wdDoc.ContentControls(cnt)
Select Case .Type
Case Is = 0: Rng.Value = .Range.Text: Set Rng = Rng.Offset(0, 1) ' Rich TextBox
Case Is = 1: Rng.Value = .Range.Text: Set Rng = Rng.Offset(0, 1) ' Plain TextBox
Case Is = 3: Rng.Value = .Range.Text: Set Rng = Rng.Offset(0, 1) ' ComboBox
Case Is = 4: Rng.Value = .Range.Text: Set Rng = Rng.Offset(0, 1) ' DropDown List
Case Is = 6: Rng.Value = .Range.Text: Set Rng = Rng.Offset(0, 1) ' Date Picker
End Select
End With
' // Check for Active X Controls
If wdDoc.InlineShapes(cnt).Type = 5 Then
Select Case Split(wdDoc.InlineShapes(cnt).OLEFormat.progID, ".")(1)
Case Is = "TextBox", "ComboBox", "ListBox"
Rng.Value = wdDoc.InlineShapes(cnt).OLEFormat.Object.Value
Set Rng = Rng.Offset(0, 1)
End Select
End If
' // Check for FormField Controls.
With wdDoc.FormFields(cnt)
Select Case .Type
Case Is = 70: Rng.Value = .TextInput.Format: Set Rng = Rng.Offset(0, 1)
Case Is = 71: Rng.Value = .CheckBox.Value: Set Rng = Rng.Offset(0, 1)
Case Is = 83: Rng.Value = .DropDown.Value: Set Rng = Rng.Offset(0, 1)
End Select
End With