Skift retning ved tryk på Enter

Når man trykker på Enter-tasten flytter denne som standard til cellen under den aktive. Man kan imidlertid indstille bevægelsen til fx at flytte op, til højre, til venstre eller slet ikke at flytte i stedet. I Excel 2003 sker dette inde under Funktioner - Indstillinger og i Excel 2007, er det under Office-knappen - Excel-indstillinger - Avancerede indstillinger.

Dette kan være noget besværligt, ikke mindst, hvis man er i gang med at arbejde i regnearket. Her er to makroer, som kan gøre arbejdet nemmere. Den første fungerer ved at den viser en inputboks, hvor man så kan skrive et bogstav, der repræsenterer den flytning, man ønsker.

Sub EnterRetning()
    Dim Retning As String

    Retning = InputBox("Vælg retning" & vbCrLf & _
       "H = Højre, V = Venstre, N = Ned, O = Op, I = Ingen flytning")

    Select Case UCase(Retning)
        Case Is = "I"
            Application.MoveAfterReturn = False
        Case Is = "H"
            Application.MoveAfterReturn = True
            Application.MoveAfterReturnDirection = xlToRight
        Case Is = "V"
            Application.MoveAfterReturn = True
            Application.MoveAfterReturnDirection = xlToLeft
        Case Is = "O"
            Application.MoveAfterReturn = True
            Application.MoveAfterReturnDirection = xlUp
        Case Is = "N"
            Application.MoveAfterReturn = True
            Application.MoveAfterReturnDirection = xlDown
        Case Else
            MsgBox "Du skal vælge en gyldig retning."
    End Select
End Sub

Den anden har samme funktion, men ingen inputboks. Denne "toggler" gennem de forskellige retninger-hver gang makroen afspilles. Den kan derfor med fordel placeres på en genvejstast. Er indstillingen "standard" altså nedad, vil makroen skifte til ingen bevægelse, første gang makroen afspilles. Står den på ingen bevægelse skiftes til at flytte til højre. Den samlede rækkefølge er denne (med udgangspunkt i standard - altså nedad):

  • Ingen
  • Højre
  • Venstre
  • Op
  • Ned

så man altså ender tilbage ved Ned efter fem afspilninger.

Sub FlytEnter()
    If Application.MoveAfterReturn = False Then
        Application.MoveAfterReturn = True
        Application.MoveAfterReturnDirection = xlToRight
    ElseIf Application.MoveAfterReturnDirection = xlToRight Then
        Application.MoveAfterReturnDirection = xlToLeft
    ElseIf Application.MoveAfterReturnDirection = xlToLeft Then
        Application.MoveAfterReturnDirection = xlUp
    ElseIf Application.MoveAfterReturnDirection = xlUp Then
        Application.MoveAfterReturnDirection = xlDown
    ElseIf Application.MoveAfterReturnDirection = xlDown Then
    Application.MoveAfterReturn = False
    End If
End Sub

- Retur til makroer -
- Retur til Excel -