VBA IN ARCGIS
By: Muhanad Gaafar Osman
What is Visual Basic?
Is
a tool that allows you to develop Windows (Graphic User
Interface - GUI) applications. The applications have a familiar
appearance to the user.
Is
event-driven, meaning code remains idle until called upon to
respond to some event (button pressing, menu selection, ...).
is governed by an event processor. Nothing happens until an
event is detected. Once an event is detected, the code
corresponding to that event (event procedure) is executed.
Some Features of Visual Basic
Full
set of objects - you 'draw' the application
Lots
of icons and pictures for your use.
Response
to mouse and keyboard actions;
Clipboard
and printer access.
Full
array of mathematical, string handling, and graphics functions.
Can
handle fixed and dynamic variable and control arrays.
Sequential
Useful
and random access file support.
debugger and error-handling facilities.
Powerful
ActiveX
database access tools.
support.
Package
& Deployment Wizard makes distributing your applications simple
Structure of a Visual Basic
Application
Application (Project) is made up of:
Forms
- Windows that you create for user interface.
Controls
- Graphical features drawn on forms to allow user interaction (text boxes, labels, scroll
bars, command buttons, etc.) (Forms and Controls are objects.).
Properties
- Every characteristic of a form or control is specified by a property. Example
properties include names, captions, size, color, position, and contents. Visual Basic applies
default properties. You can change properties at design time or run time.
Methods
- Built-in procedure that can be invoked to impart some action to a particular object.
Event
Procedures - Code related to some object. This is the code that is executed when a
certain event occurs.
General
Procedures - Code not related to objects. This code must be invoked by the
application.
Modules
- Collection of general procedures, variable declarations, and constant definitions
used by application.
Steps in Developing Application
There are three primary steps
involved in building a Visual Basic
application:
1. Draw
the user interface.
2. Assign
properties to controls.
3. Attach
code to controls
Variables
Variables
are used by Visual Basic to hold information needed by
your application. Rules used in naming variables:
No more than 40 characters
They may include letters, numbers, and underscore (_)
The first character must be a letter
You cannot use a reserved word (word needed by Visual Basic)
Visual Basic Data Types:
Boolean
Integer
Long
(Integer)
Single
(Floating)
Double
(Floating)
Currency
Date
Object
String
Variant
variables are declared using the Dim
statement:
Dim
MyInt as Integer
Dim MyDouble as Double
Dim MyString, YourString as String
Visual Basic Statements and
Expressions
The simplest statement is the assignment statement. It
consists of a variable name, followed by the assignment
operator (=), followed by some sort of expression.
Examples:
StartTime = Now
Explorer.Caption = "Captain Spaulding"
BitCount = ByteCount * 8
Energy = Mass * LIGHTSPEED ^ 2
NetWorth = Assets - Liabilities
The assignment statement stores information.
Visual Basic Operators
The simplest operators carry out arithmetic operations. These operators in their
order of precedence are:
Operator
^
Exponentiation
*/
Multiplication and division
Integer division (truncates)
Mod
+-
Operation
Modulus
Addition and subutraction
To concatentate two strings, use the & symbol or the + symbol:
lblTime.Caption = "The current time is" & Format(Now, hh:mm)
txtSample.Text = "Hook this + to this
comparison operators
There are six comparison operators in Visual Basic:
Operator
Comparison
>
Greater than
<
Less than
>=
Greater than or equal to
<=
Less than or equal to
Equal to
<>
Not equal to
The result of a comparison operation is a Boolean value (True or False).
Logical Operators
We will use three logical operators
Operator
Operation
Not
Logical not
And
Logical and
Or
Logical or
The
Not operator simply negates an operand.
The
And operator returns a True if both operands are True. Else, it returns a False.
The
Or operator returns a True if either of its operands is True, else it returns a
False.
Logical operators follow arithmetic operators in precedence.
If Statements
The
simplest is the If/Then
statement:
If Balance - Check < 0 Then Print
"You are overdrawn"
You
can also have If/Then/End If blocks to allow multiple statements:
If Balance - Check < 0 Then
Print "You are overdrawn"
Print "Authorities have been notified"
End If
In this case, if Balance - Check is less than zero, two lines of information are printed.
Or,
If/Then/Else/End If blocks:
If Balance - Check < 0 Then
Print "You are overdrawn"
Print "Authorities have been notified"
Else
Balance = Balance - Check
End If
Here, the same two lines are printed if you are overdrawn (Balance - Check < 0), but, if you
are not overdrawn (Else), your new Balance is computed.
Or,
we can add the ElseIf statement:
If Balance - Check < 0 Then
Print "You are overdrawn"
Print "Authorities have been notified"
ElseIf Balance - Check = 0 Then
Print "Whew! You barely made it"
Balance = 0
Else
Balance = Balance - Check
End If
Visual Basic Looping
Looping
is done with the Do/Loop format. Loops are used for
operations are to be repeated some number of times. The loop
repeats until some specified condition at the beginning or end of
the loop is met.
Do
While/Loop Example:
Counter = 1
Do While Counter <= 1000
Debug.Print Counter
Counter = Counter + 1
Loop
Do
Until/Loop Example:
Counter = 1
Do Until Counter > 1000
Debug.Print Counter
Counter = Counter + 1
Loop
Do/Loop
While Example:
Sum = 1
Do
Debug.Print Sum
Sum = Sum + 3
Loop While Sum <= 50
Do/Loop
Until Example:
Sum = 1
Do
Debug.Print Sum
Sum = Sum + 3
Loop Until Sum > 50
For/Next loop
Counting is accomplished using the For/Next loop.
Example
For I = 1 to 50 Step 2
A=I*2
Debug.Print A
Next I
Programming with Objects:
ArcObjects
is a set of programmable
objects
Visual Basic Application (VBA) is an
object oriented programming language
oriented programming language
VBA is included with ArcGIS Desktop
(ArcMap and ArcCatalog);
Startingthe
theVisual
VisualBasic
Basic
Starting
Editor:
Editor:
Exploring the VBA Sections:
ArcObject