In all standard controls, Up and Down arrow keys move the focus on the previous or next control in the TabIndex order, respectively. This contrasts with text boxes, where these keys move the caret on the adjacent character, which you can achieve in a more natural way using the Left and Right cursor keys. In order to get a uniform behavior of Up and Down key within text boxes, simply set the KeyPreview form’s property to True and modify the Form_KeyPress event as follows:
Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) If KeyCode = vbKeyUp Then If TypeOf ActiveControl Is TextBox Then ' Up key - move to previous control SendKeys "+{Tab}" KeyCode = 0 End If ElseIf KeyCode = vbKeyDown Then If TypeOf ActiveControl Is TextBox Then ' Down key - move to next control SendKeys "{Tab}" KeyCode = 0 End If End IfEnd Sub