The best way to select a form field using VBA
Article contributed by Mark Tangard
If you want to select a form field using a macro, you can use a variety of methods; but only the least obvious method is bug-free!
The line:
ActiveDocument.FormFields("Text4").Range.Select
or:
ActiveDocument.FormFields("Text4").Select
will indeed move the cursor to the formfield called “Text4”, but if that formfield is empty, it won't become highlighted, as a formfield reached by ordinary tabbing will, and this looks very odd to the user.
The line:
Selection.GoTo What:=wdGoToBookmark, Name:="Text4"
will move the cursor to Text4 and highlight the field, but in certain cases (depending on the vertical position of the fields – and this is especially noticeable if the formfields are in a table), that motion will cause the screen to jump in a very annoying way, even if the destination field is visible on the screen to start with.
Fortunately, the line:
ActiveDocument.Bookmarks("Text4").Range.Fields(1).Result.Select
will move the cursor to Text4 and highlight the entire field. The screen will not jump unless the “Text4” field is not fully visible to begin with. Convoluted, but it works!