Return to VBA Code Examples

VBA String Data Type (Dim Variable)

String Variable Type

The String data type is one of the most common data types in VBA. It stores “strings” of text.

To declare an variable String variable, you use the Dim Statement (short for Dimension):

To assign a value to a variable, you use the equal sign:

Putting this in a procedure looks like this:

If you run the code above, the following message box will be shown.

vba string declare

Fixed String Variable

There are actually 2 types of string variables – fixed and variable.

The “variable” string variable (shown in the previous example) allows your string to be any length. This is most common.

The “fixed” string variable defines the size of the string. A fixed string can hold up to 65,400 characters.

When you define a fixed variable, the number of characters in the variable is locked in place, even if you use fewer characters.

Notice the spaces in the graphic below – the variable has place holders for the rest of the characters in the string as ‘Fred Smith’ is less than 20 characters.

vba string variable size

However, if you have declared a string without specifying the length, then the string will only hold as many characters as are passed to it.

vba string fixed size

Declare String Variable at Module or Global Level

In the previous example, you declared the String variable within a procedure. Variables declared with a procedure can only be used within that procedure.

vba string procedure declare

Instead, you can declare String variables at the module or global level.

VBA Programming | Code Generator does work for you!

Module Level

Module level variables are declared at the top of code modules with the Dim statement.

vba string module declare

These variables can be used with any procedure in that code module.

Global Level

Global level variables are also declared at the top of code modules. However, instead of using the Dim statement, you use the Public statement to indicate that the string variable is available to be used throughout your VBA Project.

vba string global declare

If  you declared the string variable at a module level and used in a different module, an error would occur.

vba string module error

However, if you use the Public keyword to declare the string variable, the error would not occur and the procedure would run perfectly.

Convert Values stored as String

There may be a time when you have values in Excel that are stored as text – for example, you may have imported a CSV file which may have brought in text instead of numbers.

Note that the value in A1 is left-aligned, indicating a text value.

vba string text

You can use a VBA Function can be used to convert these numbers to text

Once you run the code, the number will move to the right-indicating that it is now stored as a number.

vba string number

This is particularly useful when you loop through a large range of cells.

vba string list

The result will be that all the cells are then converted to numbers

vba number list

Tired of Searching for VBA Code Examples? Try AutoMacro!

Convert String stored as Values

Similarly, there might be values that you need to convert from a string to a value – for example, if you require a leading zero on a telephone number.

vba string number to string

vba string number to string converted

Note that you need to  begin the text string with an apostrophe (‘), before the zero in order to tell Excel to enter the value as string.