Microsoft Office VBA Glossary


Subroutines or functions need to be able to communicate with one another.

The wrong way to do it is by using global variables.

The correct way is to pass an argument, this ties in with the concept of data hiding, as an argument clearly shows how the function relates to other code in your project.

Therefore you the programmer know that you can change any variables or code outside the routine and you will not effect the contents of the routine, provided you have not changed the argument values.

Example in VBA…

01  Dim bIsBMW as boolean
02  Dim szRegistrationNumber as string
04  szRegistrationNumber = "Some Car Reg"
05  ' Here we pass in an argument of Car Reg type as szRegistrationNumber
06  bIsBMW = isBMW(szRegistrationNumber)
08  ' This function is given a Car Reg variable, it then check against a
09  ' database to see car type and return true or false to calling routine.
10  Function isBMW(byval szReg as string) as boolean
11    Dim bCarIsBMW as boolean  
12    ' Code to check for bmw
13    isBMW = bCarIsBMW
14  End Function

Data Type

This is the “type of” variable, String (text), Double, Integer, Long, Single (Number), worksheet, range ,form

Data Hiding

This is explained in detail on the data hiding post.

Excel Object Model

This is the vba blueprint to manipulate Excel in code. Using the Object Model enables you to cleanly and clearly instruct Excel or any Microsoft Office Application to do Stuff.

An example of a simple “Object Model” in Excel is contained in this post under the heading Excel Specific Objects.

Excel Range and Range Object

Spreadsheet range example

An Excel range refers to to an area of the spreadsheet, spreadsheets are layed out in a grid format with columns labeled as letters and rows labeled as numbers.

So "B20:E32" refers to the "range" between column 2 row 20 and column 5 row 32

A range object is the vba code equivelent of this range and it is used to "get a reference" to this range and them manipulate it with code.

Example of an excel range object is below…

01  Dim rngOther as Range  ' Declare a variable of type range
02  ' Assuming the code is contained within the workbook
03  ' that it refers to, then you can use the variable "ThisWorkbook"
04  set rngOther = ThisWorkbook.worksheets(1).Range("B20:E32")
05  rngOther.Font.Size = 25

Vba Macro Editor or VBA IDE or Integrated Development Environment

This is where all you macro code is written, This will be explained in detail elsewhere on the site.

Excel Workbook

This is the proper (Microsoft) name for an Excel file, it is refered to in the Excel object model. An Excel workbook can have an unspecified number of Worksheets/tabs (limited only by system resources).
The vba object name for this is workbook which is part of the workbooks collection.
For Example..

01  Dim wbk as Workbook
02  ' Notice we access the workbooks (plural) collection to get
03  ' a reference to the workbook (file) c:\data\workbookname.xls.
04  set"c:\data\workbookname.xls")
05  wbk.Worksheets(1).Range("A1").Value=""
06  Msgbox "workbook opened"

Excel Worksheet

This is the page or TAB in the workbook and is most commanly called a spreadsheet it has approx 65000 rows and 256 columns up to Excel 2003 and 1,048,576 rows and 16,384 in Excel 2010 and above. The vba object name for this is worksheet or sheet.

Procedural Programming

This can be loosely defined as a program that starts at the beginning, runs and then ends sort of like executing instructions in a list, as opposed to event driven programming and or object oriented programming. It can also be used however to define a basic set of rules you need to follow on the journey to writing good code. The name says it all PROCEDURAL programming i.e
put you code in procedures (plural) as opposed to using one procedure that becomes 1000 lines long. It covers rules such as …

  • One function one task
  • Data Hiding
  • Declare All Variables (that you can) Locally
  • Use a naming convention – Hungarian for example
  • Pass variables between functions using arguments.

Object Oriented Programming

Have a look at this first post on Object Orientation.

Object Model

In object oriented programming this is the blue print or architectural plan of the program that your are using. It is incredibly useful because when programs expose an object model for programmers to implement such as with Word, Excel or Access, you the business programmer can navigate it in code and get things done in a readable, easy, maintainable and concise manner.

VBA Project

VBA Project Image

The application that you are coding (Excel, Access, Word) has a visual representation (spreadsheet grid, word area for typing, Access tables and queries) and a programatic representation.

The VBA project is the programatic representation of your application and you can issue commands from here (on the fly) via the immediate window.

The visual representation of the vba project is the vba project window which is a child window of the VBA IDE, it displays all the objects which you can control or interact with from your vba project.

This view displays all user visible objects such as worksheets and charts and the user invisible objects such as class modules, code behind sheets and forms.

For example in Excel a Project represents the current workbook (file) that you are writing code in.

If you add a form, module or class module to the project you can view them here and access them by double clicking on them.

When you add a new form, module or class module to your project you get a meaningless name such as module1, form1 etc.

Double click the new object in the project window and then change it’s name to something meaningful such as mQueryDatabase or frmSystemLogin.


This provides a similar function in a program to the memory key in a calculator, only difference is that you can have an unlimited amount of variables in a program.

Variables represent a piece of computer memory that you have reserved to store a number or text or some form of object.

Examples of variables, declared in various languages are below.

01  dim strLastName as string  ' LastName as Text in VBA
03  strLastName = "Johnson"  ' Assigning a value to the variable
04  msgBox strLastName  ' Displaying the contents of the variable

Event Driven

Coming Soon…


Coming Soon…


Coming Soon…

Class Module

Coming Soon…


Coming Soon…