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 03 04 szRegistrationNumber = "Some Car Reg" 05 ' Here we pass in an argument of Car Reg type as szRegistrationNumber 06 bIsBMW = isBMW(szRegistrationNumber) 07 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 15
Data TypeThis is the “type of” variable, String (text), Double, Integer, Long, Single (Number), worksheet, range ,form
Data HidingThis is explained in detail on the data hiding post.
Excel Object ModelThis 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
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
Excel WorkbookThis 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 wbk=workbooks.open("c:\data\workbookname.xls") 05 wbk.Worksheets(1).Range("A1").Value="BusinessProgrammer.com" 06 Msgbox "workbook opened"
Excel WorksheetThis 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 ProgrammingThis 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 ProgrammingHave a look at this first post on Object Orientation.
Object ModelIn 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.
This is part of the Visual Basic For Applications IDE, More details at VBA Project.
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 02 03 strLastName = "Johnson" ' Assigning a value to the variable 04 msgBox strLastName ' Displaying the contents of the variable
Event DrivenComing Soon…
A Class Modules enables you to code in an object oriented style thus enabling you to build robust modular programs
They are also great for managing complexity and indeed delivering projects that seem impossible to those who do not understand Object Orientation.