VBA – Reverse a String of Text


Reverse a String of Text with VBA

The VBA Routine below allows the user to enter a string, and is then presented with the same string backwards. For example “Monday” becomes “yadnoM”:

Option Explicit

Private Sub CommandButton1_Click()

'Define Variables

Dim Original_String As String
Dim Reversed_String As String
Dim Next_Char As String

Dim Length As Integer
Dim Pos As Integer

'Get the Original String

Original_String = InputBox("Pls enter the original string: ")

'Find the revised length of the string

Length = Len(Original_String)

'Set up the reversed string
Reversed_String = ""

'Progress through the string on a character by character basis
'Starting at the last character and going towards the first character

For Pos = Length To 1 Step -1

    Next_Char = Mid(Original_String, Pos, 1)
    Reversed_String = Reversed_String & Next_Char
Next Pos

MsgBox "The reversed string is " & Reversed_String

End Sub

The main features of the code are :-

• It needs a command button to activate the code – on the click event
• The following variables are set up :-

o Original_String – the original string that will be reversed (“Monday”)
o Reversed_String – the reversed string (“yadnoM”)
o Next_Char – the next character in the string that will be reversed
o Length – the length of the string
o Pos – the current position in the string

• An InputBox to capture the string. This is stored in the variable “Original String”
• The Length of the String is calculated using the LEN function and stored in the variable Length
• A FOR…NEXT loop is set up to go through the string starting at the last character and working backwards one character at a time
• The next character in the original string (working backwards) is then added to the reversed string
• This loop is iterated until we have traversed the entire length of the string
• The reversed string is displayed in a MsgBox.