4.4. Implementing Custom Class Methods

Class methods are implemented by creating subroutines (also known as sub procedures) and functions within the class. There is no practical difference between creating a subroutine or function in a class module or creating it in a code or form module. If you're used to programming in another language such as C or C++, the concept of a subroutine will be new to you, although it's analogous to a void function.

VB functions and subroutines differ only in the ability of a function to return a value to the calling procedure, and thus a function call can be placed on the right side of an assignment statement. However, I always recommend that modules consist only of functions, not of subroutines. Why? Since they are identical except that functions return a value, you can use functions to improve the robustness of your application by always returning at least a Boolean value indicating whether the function has succeeded or failed. The calling procedure isn't forced to handle the return value. Look at the two code snippets below:

Call OpenFile(sFileName)

If OpenFile(sFileName) Then

The first line of code calls a function to open a particular file. Since the return value is discarded, the function has to assume that the file was opened successfully. The function call in the second line of code returns a Boolean True or False value that is handled in the code, letting you know whether or not the call to the OpenFile function was successful.

Get VB & VBA in a Nutshell: The Language now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.