# Please suggest Excel-VBA interview questions



## jasmith4 (Nov 1, 2013)

I've been looking around the Internet for a simple set of questions to weed out people who really know both the Excel object library and the VBA language.

Please respond to this by suggesting one question per response.  Stuff like, what's the "WithEvents" keyword used for? Or, how do you copy a range's value from one place to another, both with and without formatting?


----------



## Err (Nov 1, 2013)

What is your background with Boolean expletives?


----------



## Smitty (Nov 1, 2013)

If you PM Jacob Hilderbrand (DrJ), he might be able to give you some, as he's authored some fairly extensive corporate VBA tests.


----------



## Err (Nov 1, 2013)

To be honest, there is nothing more annoying than answering "technical" questions formed by someone who doesn't know what they are talking about. 

Example: "What is your experience programming in .NET?"

Followed by a huge rambling explanation of how I prefer back end to front end work and some of the tools that I've created, and my preferred environmental settings for visual studio (without using the words "Visual Studio")

Then the follow up question: "Have you ever used Visual Studio?"

The question is annoying since anyone programming in .NET is virtually forced to use Visual Studio unless you are some sort of pariah and implies that whatever nitwit was asking the questions really wasn't paying attention.

Furthermore, knowledge is contextual. If someone doesn't know what "WithEvents" is used for (lol) -it doesn't mean that the person isn't qualified for your precious team. The programmer may have used "WithEvents" thousands of times and not known it. In fact the use model for excel implies that unknown functions can become known by using the precious "Record Macro" button and then modifying the code for their own purpose. 

I've hired a few contractors for mostly web work. The thing I always look at is their portfolio of previous work done. Look for plagiarism, like literally take unique bits of their code and paste it into google to see where they got it from. Look at their variable names. Are they meaningful?  If they copied their code it doesn't mean that they are bad people -do they know how it works?

But fun facts or gotcha questions like "name some of the Userform Activate variables" is useless because they appear on properties window. In fact, when I was working in Network routing (the days when you could get a $10,000 employee reference bonus) -I had an interview where one of the geniuses interviewing me had googled a list of fun facts that he thought I should know. This was bullshiat and a waste of my time. Retrospectively, he probably had his own candidate lined up for the position and with good money on the line -I don't blame him. At the time, I didn't appreciate his tactics and thus the position wasn't right for me.


----------



## jasmith4 (Nov 1, 2013)

I'm an Excel/VBA developer. I need others on my team. I'm certainaly capable of composing a really tough test that only those who know what they're doing will pass -- trust me on that. And yes, especially when recruiters who aren't technical at ALL ask TECHNICAL questions it is to laugh!

But all I want is some job-interview questions from others who can be described as savvy VBA developers -- just to save me some time and get some variety.


----------



## Err (Nov 1, 2013)

Ask for them to bring some of their sample code in and have them go over it. Imagine looking at their code with no comments -can you read it? Writing clean readable code is crucial to portability.


----------



## jasmith4 (Nov 1, 2013)

Ok, but if they answer a test question like "Write a function to implement so-and-so" I'd expect clean, readable code right off the bat, even if it's hand-written, so I know the candidate's coding habits -- most people don't comment as they're answering a test with code.

I appreciate your commentary, Err, but I'm looking for test questions; I take it you're against that whole concept, but I am not.


----------



## Err (Nov 4, 2013)

Like I've said. I've hired people before. I've also been turned off by other people's idiotic interviews. But what do I know?. Ask them if they've ever felt like hurling a laptop across the room- if they answer "no", then they are lying or haven't ever worked with Windows 8. Yet, if they answer truthfully ("yes") then they should have more tact and not have said that answer. So in either case, you are wasting some poor job applicant's time. Which is what your ultimate goal is, is it not?


----------



## Jon von der Heyden (Nov 6, 2013)

How much time will a candidate spend answering questions?  For me the best evidence of capability isn't in a spoken interview, I would rather want to look at code they produce to achieve specific tasks.  I would make it specific to the types of code the individual would be expected to write (e.g. if ADO is a requirement, then make them complete a small ADO task).

Ask the candidate to write a specific function (UDF) that will reverse the text in a string.  Or something more complicated if you like...  Maybe you can challenge their numeracy skills in this exercise?

Ask the candidate to write a function that will hook up to a DB and return a recordset according to a given SQL command.

Ask the candidate to develop a userform on the fly...

The skies the limit.  Many people have read VBA books and can speak competently and confidently and are they can be quite convincing.  Many struggle with the application, and at the end of the day it's the application that counts.  I think the time is better put to use by having them undertake a few exercises...  You can learn a lot about an individual by reading their code...  Things to look for:

Do they apply naming conventions?
Do they know the Excel Object Model well enough to use it's native functionality to solve problems rather than using bulky code (e.g. deleting rows using AutoFilter rather than backward loop)?
Do they choose to load arrays and then work with the array data rather than looping through cells?
Look out for bad habits like unnecessary use of "Select" and "Activate".
Are they making proper use of variables, and are they typed explicitly?

The list goes on, but my point is that a little code reveals a lot more than a verbal Q&A...

Good luck, I hope you find the right candidate(s)!


----------

