explanation of codes in Visual Basic when creating User form



I am trying to create a user form in Visual Basic however I'm trying to
teach myself by reading/watching tutorials. (www.contectures.o.ca, etc)
A lot of the instructions I am seeing simply give the code rather than
explain how to actually write one from scratch.
I need to know what each 'term' means so I can understand how the codes work.
Any help is much appreciated :)

One of the first codes is for the Add button
Private Sub cmdAdd_Click()
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("PartsData")
What does each term refer to?
As Long


Is there a website that has all these definitions?
I don't really want to just copy and paste codes because when my form
doesn't work I can't work out where the error is.

Thank you in advance.


Depends on how extensive an explanation you need. A sketchy explantion of
most of the terms is available in the help files within the Visual Basic
editor. For example, looking up "Dim" will give you the syntax of Dim with
its minimum and optional parts, and a few examples. In its simplest use Dim
is used to define a variable. For the example you gave

Dim iRow as Long

means you have defined a variable named "iRow" and you want it to be the
data type long integer ("Long" in VB-speak). The named variable can then be
used later within the function or subroutine. In general, you can name your
variables almost anything you want but there are some restrictions -- you
can't have a variable named as all integers for example (there's no way to
tell that "1234" means your variable instead of just a number), and you
cannot give a variable a name that is a reserved word in visual basic.

Following that pattern, the line:

Dim ws as Worksheet

means you defined a variable named "ws" as a Worksheet. Defining that
variable just reserves memory for its later use, and does not actually
assign a value to it (more acurately, it has the special value of "Nothing"
until you tell the subroutine which Worksheet you want the variable ws to
refer to). Speaking of which....

Set ws = Worksheets("PartsData")

means you have set the variable ws, which you previously defined as a
variable referring to a Worksheet, to refer to the "PartsData" Worksheet.
For that particular example, presumably the workbook actually has a
Worksheet named "PartsData", otherwise any of the following code using the
variable ws is going to get really confused.

If you have any background in programming -- and in particular
object-oriented programming -- you can stumble your way through most Excel
programming just by recording Macros and looking at the resulting code,
supplmented with a healthy dose of the help files.

On the other hand, if you do not have any background at all in programming,
or if all of that Visual Basic for applications code looks like double-talk,
one of the many books on Excel programming might be advisable. The general
observation is that object-orietned programming has a fairly steep leanring
curve, because everything it talks about refers to something else you don't
know about. In that case a good book that actually steps through examples
and explains what is going on might be useful.



Thanks very much Sox,
I think I will invest in a good book and get studying.
Sep 25, 2021
Reaction score
@SoS thank you, as a newby I was in the same boat as @rachel (by now she is an expert), your explanation keeps helping people - awesome, much appreciated.
Semper Fi

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question