VBA Glossary

Access Level
In VB code, the ability of other code to access it (that is, read it or write to it). The access level is determined both by how you declare the code and by the access level of the container of the code. If code can't access a containing element, then it can't access any of its contained elements either, no matter how they're declared.

Access Protocol
The software and API that allows applications and databases to communicate information. Examples include ODBC - Open DataBase Connectivity, an early protocol that is often used in conjuction with others and ADO - ActiveX Data Objects, Microsoft's protocol for accessing all kinds of information, including databases.

accelerator key
A single character used as a shortcut for selecting an object. Pressing the ALT key, followed by the accelerator key gives focus to the object and initiates one or more events associated with the object. The specific event or events initiated varies from one object to another. If code is associated with an event, it is processed when the event is initiated. Also called keyboard accelerator, shortcut key, keyboard shortcut.

ActiveX
is Microsoft's specification for reusable software components. ActiveX is based on COM, the Component Object Model. The basic idea is to define exactly how software components interact and interoperate so developers can create components that work together using the definition. ActiveX components were originally called OLE Servers and ActiveX Servers and this renaming (actually for marketing rather than technical reasons) has created a lot of confusion about what they are.

API
is a TLA (Three Letter Acronym) for Application Program Interface. An API consists of the routines, protocols and tools that programmers must use to ensure that their programs are compatible with the software that the API is defined for. A well-defined API helps applications work together by providing the same basic tools for all programmers to use. A wide variety of software from operating systems to individual components are said to have an API.

Automation Controller
Automation is a standard way to make a software object available through a defined set of interfaces. This is a great idea because the object is available to any language that follows the standard methods. The standard used in Microsoft (and therefore VB) architecture is called OLE automation. An automation controller is an application that can use the objects belonging to another application. An automation server (sometimes called an automation component) is an application that provides the programmable objects to the other applications.

background color
The color of the client region of an empty window or display screen, on which all drawing and color display takes place.

bound
Describes a control whose contents are associated with a particular data source, such as a cell or cell range in a worksheet.

Cache
A cache is a temporary information store used in both hardware (a processor chip typically includes a hardware memory cache) and software. In web programming, a cache stores the most recent web pages visited. When the 'Back' button (or other methods) are used to revisit a web page, the browser will check the cache to see if the page is stored there and will retrieve it from the cache to save time and processing. Programmers should remember that program clients might not always retrieve a page directly from the server. This sometimes results in very subtle program bugs.

CGI
is Common Gateway Interface. This is an early standard used to transfer information between a web server and a client over a network. For example, a form in a "shopping cart" application might contain information about a request to purchase a particular item. The information could be passed to a web server using CGI. CGI is still used a great deal, ASP is a complete alternative that works better with Visual Basic.

Class
Here's the "book" definition: The formal definition for an object and the template from which an instance of an object is created. The main purpose of the class is to define the properties and methods for the class. Although included in previous versions of Visual Basic, the class has become a key technology in VB.NET and its object-oriented programming. Among the important ideas about classes are: Classes involve a lot of terminology. An original class, from which interface and behavior is derived, can be identified by any of these equivalent names: And new classes can have these names:
 * A class can have subclasses that can inherit all or some of the characteristics of the class.
 * Subclasses can also define their own methods and variables that are not part of their parent class.
 * The structure of a class and its subclasses is called the class hierarchy.
 * Parent class
 * Superclass
 * Base class
 * Child class
 * Subclass

clear
To change a setting to "off" or remove a value.

client region
The portion of a window where an application displays output such as text or graphics.

Client/Server
A computing model that divides processing between two (or more) processes. A client makes requests that are carried out by the server. It's important to understand that the processes could be running on the same computer but they normally run over a network. For example, when developing ASP applications, programmers often use PWS, a server that runs on the same computer with a browser client such as IE. When the same application goes into production, it normally runs over the Internet. In advanced business applications, multiple layers of clients and servers are used. This model now dominates computing and replaced the model of mainframes and 'dumb terminals' which were really only display monitors attached directly to a large mainframe computer. In object-oriented programming, a class that provides a method to another class is called the server. The class that uses the method is called the client.

COM
is Component Object Model. Although often associated with Microsoft, COM is an open standard that specifies how components work together and interoperate. Microsoft used COM as the basis for ActiveX and OLE. The use of the COM API ensures that a software object can be launched within your application using a wide variety of programming languages including Visual Basic. Components save a programmer from having to re-write code. A component can be large or small and can perform any kind of processing, but it must be re-usable and it must conform to set standards to for interoperability.

context ID
A unique number or string that corresponds to a specific object in an application. Context IDs are used to create links between the application and corresponding Help topics.

Control
In Visual Basic, the tool you use to create objects on a Visual Basic form. Controls are selected from the Toolbox and then used to draw objects on the form with the mouse pointer. It's key to realize that the control is just the tool used to create GUI objects, not the object itself.

control group
A set of controls that are conceptually or logically related. Controls that are conceptually related are usually viewed together but do not necessarily affect each other. Controls that are logically related affect each other. For example, setting one button in a group of option buttons sets the value of all other buttons in the group to False.

control tip
A brief phrase that describes a control, a Page, or a Tab. The control tip appears when the user briefly holds the mouse pointer over a control without clicking. A control tip is similar to a ToolTip. Microsoft Forms provides ToolTips to developers at design time, while developers provide control tips to end-users at run time.

cursor
A piece of software that returns rows of data to the application. A cursor on a result set indicates the current position in the result set.

cycle
To move through a group of objects in a defined order.

data format
The structure or appearance of a unit of data, such as a file, a database record, a cell in a spreadsheet, or text in a word-processing document.

data source
The location of data to which a control is bound, for example, a cell in a worksheet. The current value of the data source can be stored in the Value property of a control. However, the control does not store the data; it only displays the information that is stored in the data source.

DLL
is Dynamic Link Library, a set of functions that can be executed, or data that can be used by a Windows application. DLL is also the file type for DLL files. For example, 'crypt32.dll' is the Crypto API32 DLL used for cryptography on Microsoft operating systems. There are hundreds and possibly thousands installed on your computer. Some DLLs are used only by a specific application, while others, such as crypt32.dll, are used by a wide variety of applications. The name refers to the fact that DLL's contain a library of functions that can be accessed (linked) on demand (dynamically) by other software.

dominant control
A reference for the Align command and Make Same Size command on the Format menu. When aligning controls, the selected controls align to the dominant control. When sizing controls, the selected controls are assigned the dimensions of the dominant control. The dominant control is indicated by white sizing handles. The sizing handles of the other selected controls are black.

drop source
The selected text or object that is dragged in a drag-and-drop operation.

Encapsulation
is the Object Oriented Programming technique that allows programmers to completely determine the relationship between objects using the object interface (the way the objects are called and the parameters passed). In other words, an object can be thought of as being "in a capsule" with the interface as the only way to communicate with the object. The main benefits of encapsulation are that you avoid bugs because you're completely certain about how an object is being used in your program and the object can be replaced with a different one if necessary as long as the new one implements the exact same interface.

enumerated constant
You can find additional information for an enumerated data item in the description of the property, method, or event that uses the enumeration.

Event Procedure
A block of code that is called when an object is manipulated in a Visual Basic program. The manipulation can be done by a user of the program through the GUI, by the program, or through some other process such as the expiration of a time interval. For example, most Form object have a Click event. The Click Event Procedure for the formForm1 would be identified by the name Form1_Click.

File Extension / File Type
In Windows, DOS and some other operating systems, one or several letters at the end of a filename. Filename extensions follow a period (dot) and indicate the type of file. For example, 'this.txt' is a plain text file, 'that.htm' or 'that.html' indicates that the file is a web page. The Windows operating system stores this association information in the Windows Registry and it can be changed using the 'File Types' dialog window provided by Windows Explorer.

foreground color
The color that is currently selected for drawing or displaying text on screen. In monochrome displays, the foreground color is the color of a bitmap or other graphic.

Frames
A format for web documents that divides the screen into areas that can be formatted and controlled independently. Often, one frame is used to select a category while another frame shows the contents of that category.

Function
In Visual Basic, a type of subroutine that can accept an argument and returns a value assigned to the function as though it was a variable. You can code your own functions or use builtin functions provided by Visual Basic. For example, in this example, both Nowand MsgBox are functions. Now returns the system time.
 * MsgBox(Now)

grid block
The space between two adjacent grid points.

Host
A Computer or a process on a computer that provides a service to another computer or process. For example, VBScript can be 'hosted' by the web browser program, Internet Explorer.

Input Method Editor (IME)
An application that translates what you type into characters of a DBCS language, such as Japanese or Chinese. As the user types, the IME displays possible equivalents. The user selects the most appropriate entry.

inherited property
A property that has acquired the characteristics of another class. Inheritance is the ability of one object to automatically take on the methods and properties of another object. The object that supplies the methods and properties is usually called the parent object and the object that assumes them is called the child. So, for example, in VB .NET, you will often see statements like this: The parent object is System.Windows.Forms.Form and it has a large set of methods and properties that have been pre-programmed by Microsoft. Form1 is the child object and it gets to take advantage of all of the parent's programming. The key OOP (Object Oriented Programming) behavior that was added when VB .NET was introduced is Inheritance. VB 6 supported Encapsulation and Polymorphism, but not Inheritance.

Instance
is a word seen in Object Oriented Programming explanations. It refers to a copy of an object that has been created for use by a specific program.

ISAPI
is the Internet Server Application Program Interface. Usually, any term that ends in the characters 'API' is an Application Program Interface. This is the API used by Microsoft's Internet Information Server (IIS) web server. Web applications that use ISAPI run considerably faster than those that use CGI, since they share the 'process' (programming memory space) used by the IIS web server and therefore avoid the time consuming program load and unload process that CGI requires. A similar API used by Netscape is called NSAPI.

keyboard state
A return value that identifies which keys are pressed and whether the keyboard modifiers SHIFT, CTRL, and ALT are pressed.

Keyword
Keywords are the words or symbols that are the elementary parts of the Visual Basic programming language. As a result, you can't use them as names in your program. Some simple examples: Dim Dim as String or Dim String as String Both of these are invalid because Dim and String are both keywords and can't be used as variable names.

Method
A way to identify a software function that performs an action or a service for a particular object. For example, the Hide method for form Form1 removes the form from the program display but doesn't unload it from memory. It would be coded: Form1.Hide

Module
A Module is a general term for a file containing code or information that you add to your project. Usually, a module contains program code which you write. In VB 6, modules have a .bas extension and there are just three kinds of modules: form, standard, and class. In VB.NET, modules usually have a .vb extension but others are possible, such as .xsd for a dataset module, .xml for an XML module, .htm for a web page, .txt for a text file, .xslt for an XSLT file, .css for a Style Sheet, .rptfor a Crystal Report, and others. To add a module, right click the project in VB 6 or the application in VB.NET and select Add and then Module.

Namespace
The concept of a namespace has been around for quite a while in programming but has only become a requirement for Visual Basic programmers to know about since XML and .NET became critical technologies. The traditional definition of a namespace is a name that uniquely identifies a set of objects so there is no ambiguity when objects from different sources are used together. The type of example that you usually see is something like the Dog namespace and the Furniturenamespace both have Leg objects so you can refer to a Dog.Leg or a Furniture.Leg and be very clear about which one you mean.

In practical .NET programming, however, a namespace is just the name that is used to refer to Microsoft's libraries of objects. For example, both System.Data and System.XML are typicalReferences in default VB .NET Windows Aplications and the collection of objects they contain are referred to as the System.Data namespace and the System.XML namespace.

The reason "made-up" examples like "Dog" and "Furniture" are used in other definitions is that the "ambiguity" problem really only comes up when you define your own namespace, not when you're using Microsoft's object libraries. For example, try to find object names that are duplicated betweenSystem.Data and System.XML.

When you're using XML, a namespace is a collection of element type and attribute names. These element types and attribute names are uniquely identified by the name of the XML namespace of which they are a part. In XML, a namespace is given the name of a Uniform Resource Identifier (URI) - such as a Web site's address - both because the namespace could be associated with the site and because a URI is a unique name. When it's used this way, the URI is not required to be used other than as a name and there doesn't have to be a document or XML schema at that address.

Newsgroup
A discussion group operated through the Internet. Newsgroups (also known as Usenet) are accessed and viewed on the web. Outlook Express (distributed by Microsoft as part of IE) supports newsgroup viewing. Newsgroups tend to be popular, fun, and alternative. See Usenet.

Object
Microsoft defines it as a software component that exposes its properties and methods

Halvorson (VB.NET Step by Step, Microsoft Press) defines it as ... the name of a user interface element you create on a VB form with a Toolbox control

Liberty (Learning VB.NET, O'Reilly) defines it as ... an individual instance of a thing

Clark (An Introduction to Object-Oriented Programming with Visual Basic .NET, APress) defines it as ... a structure for incorporating data and procedures for working with that data

There's quite a broad spectrum of opinion on this definition. Here's one that is probably right in the mainstream:

Software that has properties and/or methods. A Document, Branch or Relationship can be an individual object, for example. Most, but not all, objects are members of a collection of some kind.

Object Library
A file with the .olb extension that provides information to Automation controllers (like Visual Basic) about available objects. The Visual Basic Object Browser (View menu or function key F2) will let you browse all of the object libraries available to you.

OCX
The file extension (and generic name) for OLE Custom control (the X must have been added because it looked cool to Microsoft Marketing types). OCX modules are independent program modules that can be accessed by other programs in a Windows environment. OCX controls replaced VBX controls written in Visual Basic. OCX, both as a marketing term and a technology, was replaced by ActiveX controls. ActiveX is backward compatible with OCX controls because ActiveX containers, such as Microsoft's Internet Explorer, can execute OCX components. OCX controls can be either 16-bit or 32-bit.

OLE
OLE stands for Object Linking and Embedding. This is a technology that first came on the scene along with the first really successful version of Windows: Windows 3.1. (Which was released in April 1992. Yes, Virginia, they had computers that long ago.) The first trick that OLE made possible was the creation of what is called a "compound document" or a document that has content created by more than one application. For example, a Word document containing a genuine Excel spreadsheet (not a picture, but the actual thing). The data can be provided by either "linking" or "embedding" which accounts for the name. OLE has gradually been extended to servers and networks and has gained more and more capability.

OLE container control
A Visual Basic control that is used to link and embed objects from other applications in a Visual Basic application.

OLE status code
The error number portion of a data structure that returns information for error conditions. The data structure is defined by Object Linking and Embedding.

OOP - Object Oriented Programming
A programming architecture that emphasizes the use of objects as the fundamental building blocks of programs. This is accomplished by providing a way to create the building blocks so they include both data and functions that are accessed through an interface (these are called "properties" and "methods" in VB).

The definition of OOP has been controversial in the past because some OOP purists vehemently insisted that languages like C++ and Java were object oriented and VB 6 was not because OOP was defined (by the purists) as incorporating the three pillars: Inheritance, Polymorphism, and Encapsulation. And VB 6 never implemented inheritance. Other authorities (Dan Appleman, for example), pointed out that VB 6 was very productive for building binary reusable code blocks and therefore it was OOP enough. This controversy will die down now because VB .NET is very emphatically OOP - and most definitely includes Inheritance.

Perl
is an acronym that actually expands to 'Practical Extraction and Report Language' but this doesn't do much to help you understand what it is. Although it was created for text processing, Perl has become the most popular language for writing CGI programs and was the original language of the web. People who have a lot of experience with Perl love it and swear by it. New programmers, however, tend to swear at it instead because it has a reputation for not being easy to learn. VBScript and Javascript are replacing Perl for web programming today. Perl is also used a great deal by Unix and Linux administrators for automating their maintenance work.

placeholder
A character that masks or hides another character for security reasons. For example, when a user types a password, an asterisk is displayed on the screen to take the place of each character typed.

Polymorphism
is a word seen in Object Oriented Programming explanations. This is the ability to have two different objects, of two different types, that both implement the same method (polymorphism literally means "many forms"). So, for example, you might write a program for a government agency calledGetLicense. But the license could be a dog license, a driver's license or a license to run for political office ("license to steal" ??). Visual Basic determines which one is intended by differences in the parameters used to call the objects.

Process
refers to a program that is currently executing, or "running" on a computer.

Property
In Visual Basic, a named attribute of an object. For example, every Toolbox object has a Nameproperty. Properties can be set by changing them in the Properties window at design time or by program statements at run time. For example, I might change the Name property of a form Form1with the statement :
 * Form1.Name = "MyFormName"

property page
A grouping of properties presented as a tabbed page of a property sheet.

Public
In Visual Basic .NET, the keyword in the declaration statement that makes the elements accessible from code anywhere within the same project, from other projects that reference the project, and from any assembly built from the project. But see Access Level as well on this. Here's an example: Public Class aPublicClassName

Public can be used only at module, interface, or namespace level. You can't declare an element to be Public within a procedure.

RGB
A color value system used to describe colors as a mixture of red (R), green (G), and blue (B). The color is defined as a set of three integers (R,G,B) where each integer ranges from 0-255. A value of 0 indicates a total absence of a color component. A value of 255 indicates the highest intensity of a color component.

system colors
Colors that are defined by the operating system for a specific type of monitor and video adapter. In Windows, each color is associated with a specific part of the user interface, such as a window title or a menu.

target
An object onto which the user drops the object being dragged.

transparent
Describes the background of the object if the background is not visible. Instead of the background, you see whatever is behind the object, for example, an image or picture used as a backdrop in your application. Use the BackStyle property to make the background transparent.

unbound
Describes a control that is not related to a worksheet cell. In contrast, a bound control is a data source for a worksheet cell that provides access to display and edit the value of a control.