With more than 50 non-fiction books and numerous magazine articles to his credit, Allen Wyatt is an internationally recognized author. He is president of Sharon Parq Associates, a computer and publishing services company.
Learn more about Allen...
Dori Lynn's customers use Word to create simple forms. One of the things they do quite often is use tables for ease in moving through the form. Dori Lynn wonders if there is a way to tab from the last cell (field) of one table to the first cell in the next. Right now if she tabs at the end of the table, it creates a new row.
Pressing the Tab key when the insertion point is in a table cell normally moves the selection to the next cell in the table. At the last cell in the table, the Tab key adds a new row of cells to the bottom of the table and moves the insertion point to the first cell of the new row. That is obviously not the behavior that Dori Lynn is looking for.
There are a couple of approaches you can use for this problem. One is to remember that you can use the Object Browser to move from one table to the next. That, of course, means that you can't use the Tab key to move from table to table, but you can click the Object Browser button (bottom-right corner of the screen, click the small "ball" between the double up- and down-arrows, then choose Browse by Table from the options) to find those tables.
If you actually want to use the Tab key, then you are going to need to create a macro. Pressing the Tab key when the insertion point is within a table causes Word to execute a command called nextcell, which in turn executes the MoveRight command. It is possible to write a custom nextcell command that forces Word to do what Dori Lynn wants.
How you modify existing Word commands is covered in other WordTips. The custom nextcell routine, below, traps the Tab key and moves the selection to the next cell unless the current cell is the last cell of the table. If it is, then it moves to the next table in the document. If there are no further tables in the document, then the insertion point remains in the last cell of that last table.
Sub nextcell() Dim oCell As Cell With Selection Set oCell = .Cells(1).Next If oCell Is Nothing Then .Move unit:=wdTable, Count:=1 Else .MoveRight Unit:=wdCell End If End With End Sub
The subroutine will work correctly with tables that have vertically and horizontally merged cells. It will process tables within tables, but will stop at the last cell of the inner table.
WordTips is your source for cost-effective Microsoft Word training. (Microsoft Word is the most popular word processing software in the world.) This tip (5673) applies to Microsoft Word 2007, 2010, and 2013.
Create Custom Apps with VBA! Discover how to extend the capabilities of Office 2013 (Word, Excel, PowerPoint, Outlook, and Access) with VBA programming, using it for writing macros, automating Office applications, and creating custom applications. Check out Mastering VBA for Office 2013 today!