Hiring guide for VBA Engineers

VBA Developer Hiring Guide

VBA, which stands for Visual Basic for Applications, is a programming language developed by Microsoft. It is primarily used within Microsoft Office applications such as Excel, Access and Word to automate tasks and add functionality. VBA allows users to create custom functions or procedures that can perform operations on objects in these applications. This event-driven language uses the same structures and concepts as the standalone Visual Basic language such as loops, conditional statements and error handling mechanisms. However, it's embedded in the Office package so it doesn't require separate installation. VBA enables developers to build user-defined functions (UDFs), access Windows APIs (Application Programming Interfaces) and other low-level functionality through dynamic-link libraries (DLLs). Despite being relatively old compared with modern scripting languages like Python or JavaScript, VBA remains popular due its integration with MS Office suite of products which are widely used across many industries worldwide.

Ask the right questions secure the right VBA talent among an increasingly shrinking pool of talent.

First 20 minutes

General VBA app knowledge and experience

The first 20 minutes of the interview should seek to understand the candidate's general background in VBA application development, including their experience with various programming languages, databases, and their approach to designing scalable and maintainable systems.

How would you define VBA?
VBA, or Visual Basic for Applications, is a programming language developed by Microsoft that is used within Microsoft applications to automate routine tasks.
What are the key features of VBA?
Key features of VBA include the ability to automate tasks, create custom functions, interact with the Windows API and other applications, and build user-defined functions and forms.
Describe the difference between a function and a subroutine in VBA.
In VBA, a function returns a value and can be used in a cell formula, while a subroutine does not return a value and is used to perform an action.
How would you declare a variable in VBA?
In VBA, you declare a variable using the Dim statement, followed by the variable name and its type. For example, 'Dim x As Integer'.
What are the different data types in VBA?
VBA has several data types, including Integer, Long, Single, Double, Currency, String, Date, Boolean, and Variant.
The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

What you’re looking for early on

Does the candidate have a strong understanding of VBA programming language?
Can the candidate solve problems using VBA?
Has the candidate demonstrated good communication skills?
Does the candidate have experience with Excel and other Microsoft Office applications?

Next 20 minutes

Specific VBA development questions

The next 20 minutes of the interview should focus on the candidate's expertise with specific backend frameworks, their understanding of RESTful APIs, and their experience in handling data storage and retrieval efficiently.

Describe the difference between ByVal and ByRef in VBA.
ByVal passes a copy of the variable to the procedure, while ByRef passes the actual variable. Changes made to a ByVal variable do not affect the original variable, while changes to a ByRef variable do.
How would you handle errors in VBA?
In VBA, you can handle errors using the On Error statement. This can be followed by GoTo, Resume, or Resume Next. You can also use the Err object to get information about the error.
What are arrays in VBA and how would you use them?
Arrays in VBA are variables that can hold more than one value. They are useful when you need to store and manipulate a set of values. You can declare an array using the Dim statement, and then assign values to it using an index.
Describe the difference between a static and a dynamic array in VBA.
A static array has a fixed size that is set when it is declared, while a dynamic array can have its size changed at runtime using the ReDim statement.
How would you use a loop in VBA?
In VBA, you can use a For loop, a Do While loop, or a Do Until loop to repeat a block of code a certain number of times. The loop continues until a specified condition is met.
The hiring guide has been successfully sent to your email address.
Oops! Something went wrong while submitting the form.

The ideal back-end app developer

What you’re looking to see on the VBA engineer at this point.

At this point, a skilled VBA engineer should demonstrate strong problem-solving abilities, proficiency in VBA programming language, and knowledge of software development methodologies. Red flags include lack of hands-on experience, inability to articulate complex concepts, or unfamiliarity with standard coding practices.

Digging deeper

Code questions

These will help you see the candidate's real-world development capabilities with VBA.

What does the following VBA code do?
Sub HelloWorld()
 MsgBox "Hello, World!"
End Sub
This code defines a subroutine named 'HelloWorld'. When this subroutine is called, it displays a message box with the text 'Hello, World!'.
What will be the output of the following VBA code?
Dim x As Integer
x = 5
x = x * 2
MsgBox x
This code declares an integer variable 'x', assigns it the value 5, then multiplies it by 2. The message box will display the value 10.
What does the following VBA code do?
Dim arr(5) As Integer
For i = 0 To 5
 arr(i) = i * 2
Next i
This code declares an array of integers with 6 elements. It then uses a For loop to iterate over each element in the array, assigning each element the value of its index multiplied by 2.
What does the following VBA code do?
Sub RunInParallel()
 Application.MultiThreadedCalculation.ThreadMode = xlThreadModeAutomatic
End Sub
This code changes the Excel application's calculation mode to automatic multithreaded calculation. This allows Excel to use multiple threads for calculation, which can speed up complex calculations.

Wrap-up questions

Final candidate for VBA Developer role questions

The final few questions should evaluate the candidate's teamwork, communication, and problem-solving skills. Additionally, assess their knowledge of microservices architecture, serverless computing, and how they handle VBA application deployments. Inquire about their experience in handling system failures and their approach to debugging and troubleshooting.

What are collections in VBA and how would you use them?
Collections in VBA are objects that can contain multiple items. They are useful when you need to group related items together. You can add items to a collection using the Add method, and retrieve them using an index or a key.
Describe the difference between early binding and late binding in VBA.
Early binding means that the type of an object is determined at compile time, while late binding means that it is determined at runtime. Early binding is faster and allows for better error checking, but requires a reference to the object's library. Late binding is slower and has less error checking, but does not require a reference.
How would you interact with the Windows API in VBA?
In VBA, you can interact with the Windows API by declaring a function or a subroutine with the Declare statement, and then calling it. The function or subroutine must be defined in a DLL that is loaded into memory.

VBA application related

Product Perfect's VBA development capabilities

Beyond hiring for your VBA engineering team, you may be in the market for additional help. Product Perfect provides seasoned expertise in VBA projects, and can engage in multiple capacities.