Skip to Content
Course content

12.2 Using VBA Libraries and References.

In VBA, libraries and references provide access to pre-built functions, objects, and methods that enhance the functionality of your code. By utilizing libraries, you can expand the capabilities of VBA, integrate with other applications, and manage external data more effectively. This section covers how to use VBA libraries and references to boost your coding efficiency.

1. What Are VBA Libraries and References?

  • Libraries: A library in VBA is a collection of pre-defined functions and objects, provided by either Microsoft or third-party sources, which extend the capabilities of VBA. Libraries are compiled files (DLLs or OCXs) containing reusable code.
  • References: A reference in VBA is a link to a library or external resource that allows VBA to access its functions and objects. By adding references, you enable your VBA project to use external libraries.

2. How to Add a Reference in VBA

To use a specific library in VBA, you need to add the appropriate reference. Here’s how you can add a reference:

  1. Open the VBA Editor by pressing Alt + F11.
  2. Go to the Tools menu and select References.
  3. In the References dialog box, scroll through the list of available libraries and check the ones you want to use.
  4. Click OK to confirm your selection.

You can also uncheck a reference if you no longer need it.

3. Commonly Used Libraries in VBA

Here are some commonly used libraries and their typical use cases:

3.1 Microsoft Excel Object Library

This is automatically referenced when you create an Excel VBA project. It provides access to Excel's objects such as Workbooks, Worksheets, Ranges, and other Excel-specific functionality.

  • Use Case: Automating Excel tasks like opening, closing, or modifying workbooks and ranges.

3.2 Microsoft Scripting Runtime

This library provides access to the FileSystemObject and collections like Dictionary and Collection.

  • Use Case: File handling, managing directories, creating or reading files, and using dictionaries for key-value pair storage.

3.3 Microsoft ActiveX Data Objects (ADO)

ADO allows you to work with external data sources, such as databases, and retrieve or update data from these sources.

  • Use Case: Connecting to external databases (e.g., SQL Server, Access) and running SQL queries to retrieve or update data.

3.4 Microsoft Outlook Object Library

If you want to interact with Outlook from within your VBA code, such as sending emails or accessing calendar events, this library is essential.

  • Use Case: Automating email sending, calendar management, or managing contacts in Outlook.

3.5 Microsoft Word Object Library

For automating tasks within Microsoft Word, such as creating documents or manipulating text, this reference is required.

  • Use Case: Automating Word document creation, formatting, and printing.

3.6 Microsoft Forms 2.0 Object Library

This library provides objects for creating UserForms and adding controls (e.g., buttons, textboxes) in your VBA projects.

  • Use Case: Designing custom dialog boxes or user interfaces in Excel.

3.7 Windows Script Host Object Model

This library enables interaction with Windows scripting features, such as creating or deleting files and folders, or manipulating system-level tasks.

  • Use Case: Performing system-level operations, like file and folder management, via VBA.

4. Working with Object Libraries and References

Once you have added the necessary reference to your VBA project, you can start using the objects, methods, and properties provided by the library. Here's an example of using the Microsoft Scripting Runtime to create and manipulate a Dictionary object:

Sub CreateDictionary()
    ' Create a Dictionary object
    Dim dict As Object
    Set dict = CreateObject("Scripting.Dictionary")
    
    ' Add key-value pairs
    dict.Add "Apple", "Fruit"
    dict.Add "Carrot", "Vegetable"
    
    ' Retrieve a value using a key
    MsgBox dict("Apple")  ' Outputs "Fruit"
    
    ' Check if a key exists
    If dict.Exists("Carrot") Then
        MsgBox "Carrot is a " & dict("Carrot")
    End If
End Sub

In this example, the Microsoft Scripting Runtime library is used to create a Dictionary object that stores key-value pairs and allows easy access to the values associated with the keys.

5. Managing References in VBA

5.1 Missing References

Sometimes, a reference that was previously used in a project may become unavailable (e.g., if you open the project on a different machine). When this happens, VBA will show a “Missing” reference in the References dialog box. It’s important to fix these issues, either by selecting the correct version of the reference or by removing the dependency.

5.2 Late Binding vs. Early Binding

  • Early Binding: This occurs when you add a reference to an object library, and VBA can check the types of objects at compile time. This method provides IntelliSense and faster performance.
    • Example: Dim obj As New Outlook.Application
  • Late Binding: In this case, you don’t add a reference, and you use CreateObject to dynamically bind to an object at runtime. While it doesn’t provide IntelliSense, it ensures that your code is more flexible, especially if the library isn’t guaranteed to be installed.
    • Example: Dim obj As Object Set obj = CreateObject("Outlook.Application")

6. Removing References

If a reference is no longer needed or is causing issues, you can remove it from your project. Simply go to the References dialog and uncheck the reference you wish to remove.

7. Conclusion

Using libraries and references in VBA allows you to extend the functionality of your applications by integrating with other programs, accessing external data, and utilizing advanced features. By properly managing and referencing external libraries, you can significantly improve the capability and flexibility of your VBA projects. Always ensure that you only add the necessary references to keep your code clean and maintainable.

Commenting is not enabled on this course.