Dim currentBoxIndex As Integer Sub CycleTextBoxes() Dim shp As Shape Dim doc As Document Set doc = ActiveDocument If currentBoxIndex >= doc.Shapes.Count Then currentBoxIndex = 0 ' Reset to the first text box End If ' Increment index to move to the next text box currentBoxIndex = currentBoxIndex + 1 ' Loop to find the next text box (skip non-text-box shapes) For Each shp In doc.Shapes If shp.Type = msoTextBox Then currentBoxIndex = currentBoxIndex - 1 If currentBoxIndex = 0 Then shp.Select Exit Sub End If End If Next shp End Sub