ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

VBA: How to Declare & use Variables in Excel

Updated on September 11, 2012

What is a Variable?

Think of a variable as a container for holding data within VBA.

Like in real life the type and size of the container you use depends on what you want it to hold.

This hub will focus on the four types of variables I use most often:

String: This type of variable is used to store text.

Integer: This variable type is used to store whole numbers from 32,768 to 32,767.

Long: This type of variable is used to store numbers ranging from -2,147,483,648 to 2,147,483,647

Date: This type of variable is used to store dates. When using the date variable enclose a date with "#" signs.

The first step in writing code is declaring your variables.

Declaring Variables

Variables should be declared at the beginning of a macro.

You can use a variable without first declaring it, but I highly discourage this. If a variable is not declared excel will store it as a Variant (the largest type of variable).

You can prevent excel from allowing you to use an undefined variable by prefacing your module with "option explicit" Option Explicit should be included a the first line of code at the top of your module (not within a subroutine)

Defining your variable a very easy task. It is composed of three elements:

Dim VariableName as VariableType


Dim MyString as String

This would create a string variable name my string.

Note: A variable can contain no spaces. It is helpful to include upper and lowercase letters. When you reference your variable again VBA will mirror the case. This makes it easier to tell you have typed your variable name in correctly.

Assigning data to your variable

Data is assigned to your macro using the "=" operator. Below are two ways to assign data to a variable.





Returning Your Variable to a Cell

To return your variable to a cell, reference the cell followed by the "=" operator and the variable name. Do not enclose your variable name in quotes



Let's Build a Macro to Test Our Variables

Option Explicit
Sub TestVariables()

'define variables
Dim MyString As String
Dim MyInteger As Integer
Dim MyLong As Long
Dim MyDate As Date

'assign values
MyString = "Congratlations! You have used your first variables."

MyInteger = 10

MyLong = 10700.7

MyDate = #01/01/2012#

'return variables to cells



End Sub

Ready for More?

In the next module, we will be working with ranges. Click here when you are ready to proceed.


    0 of 8192 characters used
    Post Comment
    • jonhaus profile imageAUTHOR


      7 years ago from Kansas City, Mo

      Thanks. Hopefully you do. This has proved to be the most valuable skill I have learned so far in my career.

    • aisha91 profile image

      Rasna Aisha 

      7 years ago from Manila, Philippines

      Hi jonhaus,

      I don't know VBA yet, but it seems really interesting...

      Hopefully I will learn this language too.

      Rated it useful...:)

      Welcome here on HP and happy writing :)


    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at:

    Show Details
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the or domains, for performance and efficiency reasons. (Privacy Policy)
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)