|
Main
IT
GUIDE
Source Code
My
Code
Other Projects
Zipped Source Code
Unsorted Code
VB Gem
Trojan Source Code
HELP
VB Books
VB
Commands
VB
Functions
Online
MSDN
Online Book
TIPS & TRICKS
Tips &
Tricks
Tips & Tricks 2
TUTORIAL
Code Optimization
Code Optimization 2
Code Optimization 3
Games Tutorial
DirectX
Favorites
Me
|
|
VB
Command Descriptions
Operators
Here are the VB
operators used to perform mathematical operations on one or more variables.
Aside from the normal multiply/add/subtract and divide, you will find the
AND, OR, Not Equal, MOD and Integer Division operators very useful.
- / - Normal division
- \ - Integer division (truncates the answer)
- ^ - Exponentiation operator
- * - Multiply
- + - Plus
- - - Minus
- = - Equal
- > - Greater Than
- < - Less Than
- <> - Not Equal
- >= - Greater than or equal
- <= - Less than or equal
- AND - Defines a
Boolean value that is the AND of
two values
- result = expression1 AND expression2
- OR - Defines a
Boolean value that is the OR of
two values
- result = expression1 OR expression2
- XOR - Defines a
Boolean value that is the
exclusive OR of two values
- result = expression1 XOR expression2
- NOT - Defines an opposite
Boolean value
- EQV - Performs a logical equivalence on two
expressions (result is true if both expressions are true)
- result = expression1 EQV expression2
- IMP - Performs a logical implication on two
expressions
- result = expression1 IMP expression2
- IS - Determines if 2 variables reference the
same object
- result = object1 IS object2
- LIKE - Determines if one string matches a
pattern
- result = string LIKE pattern
- MOD - Returns the integer remainder of a
division
Math
VB also provides
built-in functions which can act on variables. Most are self-explanatory. In
my experience, the VAL, RND, and ROUND functions are among the most
valuable, so be sure to pay close attention to them!
- Round - Rounds a number to a selectable number
of decimal places
- result = round ( tempvariable,2 )
- Val - Returns the numerical content of a string
- Int - Returns an integer by truncating
(different than Fix)
- Fix - Returns an integer by truncating
(different than Int)
- Hex - Returns the hexadecimal value of any
number
- temp$ = hex ( tempvariable )
- Oct - Returns the octal value of any number
- temp$ = oct ( tempvariable )
- Tan - Returns the tangent of an angle
- tempvariable1 = tan ( tempvariable2 )
- Rnd - Returns a random number between 0 and 1
- Randomize - Initializes the Rnd function so it
gives different answers each time
- Sgn - Returns the sign of a number
- Sin - Returns the sine of an angle
- tempvariable1 = sin ( tempvariable2 )
- Cos - Returns the cosine of an angle
- tempvariable2 = cos ( tempvariable )
- Abs - Converts a number to a positive value
- Sqr - Returns the square root of a number
- tempvariable1 = sqr ( tempvariable2 )
- Log - Returns the base 10 logarithm of a number
- tempvariable1 = log ( tempvariable2 )
- Atn - Returns the arctangent of an angle
- tempvariable1 = atn ( tempvariable )
- Partition - Sort of an oddball function but
segregates values according to ranges
- Type Conversions - A variety of conversion
functions
- CBool, CByte, CCur,
CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar
Strings
In my experience these
functions are used more than just about any of the other VB built-in
functions. The FORMAT, MID, and INSTR functions are incredibly powerful and
I use them extensively. If you don't understand what they are, they are worth
the time to figure out! The LEN and CHR functions are also valuable as
are the variations on the trim and case functions.
- Left - Returns the left n characters of a string
- temp$ = left$ ( teststring$, 4 )
- Right - Returns the right n characters of a
string
- temp$ = right$ ( teststring$, 4 )
- Trim - Removes leading and trailing spaces of a
string
- temp$ = trim$ (
teststring$ )
- LTrim - Removes only the leading spaces of a
string
- temp$ = ltrim$ (
teststring$ )
- RTrim - Removes only the trailing spaces of a
string
- temp$ = rtrim$ (
teststring$ )
- UCase - Makes all characters upper case
- temp$ = ucase$ (
teststring$ )
- LCase - Makes all characters lower case
- temp$ = lcase$ (
teststring$ )
- Mid - Returns n characters from a string,
starting a any position
- temp$ = mid$ ( teststring$, 1, 4 )
- Len - Returns the length of a string (how many
characters it has)
- temp$ = len (
teststring$ )
- LSet - Positions a string inside another, flush
to the left
- temp$ = lrset (
teststring$ )
- RSet - Positions a string inside another, flush
to the right
- temp$ = rset$ (
teststring$ )
- Format - Returns a string formatted according to
a user-defined format
- temp$ = format$ ( teststring$,
"####.0" )
- String -
- temp$ = left$ ( teststring$, 4 )
- Chr - Returns the string representation of a
number
- Asc - Returns the ASCII code of a single
character
- Space - Returns n spaces
- Instr - Determines if one string is found within
a second string
- i = Instr (starthere, string1, string2)
- InStrRev - Determine if one string is found in a
second, starting at the end
- i = InStrRev (string1, string2, start)
- StrComp - Compares two strings
- result = StrComp (string1, string2)
- StrConv - Converts the case of a string's
characters
- StrConv (string,
vbuppercase)
- StrReverse - Reverses character order in a
string
- Replace - Replaces each occurrence of a string
- Replace (bigstring,
searchstring, replacementstring)
- FormatCurrency - Returns a string using a
currency format
- FormatDateTime - Returns a date or time
expression
- FormatDateTime("3/2/99",vbShortTime)
- FormatNumber - Returns a number formatted
according to a variety of options
- FormatPerCent - Returns a number formated as a
percent
Arrays
Every programmer
eventually uses arrays. Mostly they're pretty easy to understand. Take note,
however, that you can resize an array with REDIM without losing the data.
For details, see the PRESERVE keyword in the HELP entry on REDIM. If you use
the LBound/UBound in your code instead of hard-coding the dimension of the
array, you can later change the size of the array without touching your
code!
- Option Base - Determines whether the lowest
range of an array is 0 or 1
- Erase - Erases all values of an array
- Dim - Creates an array
- Redim - Resets the bounds of an array (has
option to save values)
- UBound - Returns the upper dimension of an array
- LBound - Returns the lower dimension of an array
- Filter - Returns a subset of an array based on a
filter
- Filter (inputarray,
searchstring)
- Array - Yes, there is a function called array.
It returns an array that has been filled with data from a list. It
allows you to put the actual data values in the code to avoid having the
user input it or to avoid having to read it from a file
- ArrayName = Array (10, 20, 30)
- Join - Concatenates strings within an array
File Handling (Generic)
While VB is working on
a better approach (FileSystemObject), the built-in file handling statements
are still the only way to access data other than through the VB database
capabilities. Your skills in this area can make or break your ability to
work with various formats. The OPEN/CLOSE statements are critical to
success, but the LOF, EOF, and LEN functions are used even more often! It's
also a given that you'll use the DIR function regularly.
- Dir - Returns a filename that matches a pattern
- CurDir - Returns the current directory
- MkDir - Creates a directory
- mkdir ( "newdirectoryname" )
- ChDir - Changes the current directory to a new
location
- chdir ( "newdirectoryname" )
- ChDrive - Changes the current drive
- RmDir - Removes the indicated directory
- rmdir ( "directoryname" )
- Freefile - Returns an unused file handle
- Open - Opens a file for access, locking it from
other applications
- open "filename" for input as #1
- Close - Closes a file so that other applications
may access it
- LOF - Returns the length of a file in bytes
- EOF - Returns a boolean value to indicate if the
end of a file has been reached
- statusvariable = eof ( #1 )
- Name As - Renames a file
- name "filename1" as
"filename2"
- Kill - Deletes a file
- Fileattr - Returns attribute information about a
file
- GetAttr - Returns attributes of a file or
directory
- i = GetAttr("c:\windows\temp")
- SetAttr - Sets the attributes of a file
- SetAttr pathname, vbHidden
- Reset - Closes all disk files opened by the OPEN
statement
- FileDateTime - Returns data file was created or
last edited
- FileDateTime ( filename )
- FileLen - Returns length of file in bytes
- FileCopy - Copies a file to a new name
- FileCopy sourcefile, destinationfile
- Lock - Controls access to a part or all of a
file opened by OPEN
- UnLock - Restores access to a part or all of a
file opended by OPEN
- Width # - Set the output line width used by the
OPEN statement
File Handling - ASCII-specific
While VB is working on
a better approach (FileSystemObject), the built-in file handling statements
are still the only way to access data outside of a data base. Your skills in
this area can make or break your ability to work with various formats. The
OPEN/CLOSE statements are critical to success, but the LOF, EOF, and LEN
functions are necessary to build useful code.
- Line Input - Reads an entire line of ASCII text
- line input #1,
tempvariable$
- Write - Puts data in a file, with separators for
the data
- Print - Puts data in a file with no separators
- Spc - Used in a print statement to move a number
of spaces
- Print #2, var1; spc(15); var2
- Tab - Used in a print statement to move to TAB
locations
- Print #2, var1; Tab(20); var2
File Handling - Binary-specific
VB also support
features which allow you to access a file on a byte-by-byte basis. The good
thing about it is that you have more control, the bad thing is that you may
have to write more code. Generally, a programmer will use the option (ASCII
or Binary access) according to the least code he has to write. For
binary access the Get/Put are equivalent to the Line Input and Print
functions used in ASCII text file access. The big difference between the two
is that binary access will read (Get) an exact number of bytes of data, and
the reading can start at any byte within the file.
- Get - Reads data from a file
- Put - Puts data into a file
- Seek - Moves the current pointer to a defined
location in a file
- Input
- Loc - Returns current position with an open file
Declarations
I probably get more
questions about the functions in this section than about any other group. In
general, the concepts are pretty simple, but the details of getting it
exactly right can cause even experienced programmers trouble. Focus on
understanding Dim/ReDim/Public/Private/Sub/Function/Type and Set. However,
they're all useful at times, so bear down and commit these to memory. I'll
try to add more text and tips on these than I have on the others.
- Dim - Used to define a variable as a certain
type
- i = dim i as integer, r as single
- You can use the Option Explicit to make sure
that VB forces you to declare every variable you use. DIM is that
simplest way to declare a variable
ReDim - Used to change the dimensions of a
dynamic array
- redim arrayname(37)
- Don't be afraid of this one. You can use
ReDim to create an array whose size grows by 1 every time you want
to add a number to it. Then, the UBound tells you how many numbers
you've added.
Static - Establishes a procedure variable which
keeps its value between calls
- static i as integer
- For example, if you want to keep track of
how many times you've been in a procedure, set a counter as STATIC
and increment it by one for each visit to the procedure. It will
never go away until the program is terminated.
Public - Creates a variable which can be
accessed outside its own procedure
- public i as integer
- Even if you're the only programmer writing
code in your application, use of Private vs Public will help catch
errors if you inadvertently try to access an out-of-scope variable
Private - Creates a variable that can be read
only in its own procedure or module, according to where the declaration
took place.
- private i as integer
- Use this as often as possible to avoid
unnecessary exposure of your variables to coding mistakes.
Sub - Defines a procedure which can execute a
block of code
- Sub NewProcedure (var1 as integer, var2 as
string)
- Be sure to check out HELP for how to handle
Sub arguments. There are more questions and mistakes made concerning
the use of arguments than just about anything else I've seen.
Function - Declares a procedure which can return
a value
- Function NewFunction (var1 as integer, var2
as string) as SINGLE
- This is actually the most versatile of the
Sub/Function procedure types. It can do anything a Sub can do as
well as returning a value for use in an expression.
Call - Transfers control to a Sub or Function
(is optional)
- Call Procedure 1
- Since the use of CALL is optional, forget
you ever saw it
CallByName - Executes a method of an object or
set/returns a property
- CallByName(form1,procedurename,vbMethod)
- The really cool thing about this is that you
don't have to hardcode a procedure call. Just use a string variable
with the name of the procedure to call.
Option Explicit - Instructs VB to force an
explicit declaration of all variables
- Option Explicit
- You're borderline stupid if you don't use it
to catch typing errors. Set up the VB IDE to automatically include
this in all projects.
Option Compare - Instructs VB on how to make
string comparisons
- Option Compare Binary
- This can add case-insensitivity for those
times when you don't want to hard-code it
Option Private - Prevents a module's content
from being referenced outside a project.
- Option Private Module
- Generally doesn't apply to most VB
applications. If you find a good use for it let me know.
Property Get - Declares how to get the value of
a property
- Property Get Name()
- You won't use this much until you get into
creating classes of your own
Property Let - Declares how to assign a value to
a property
- Property Let Name()
- You won't use this much until you get into
creating classes of your own
Property Set - Declares how to set a variable
reference to an object
-
- You won't use this much until you get into
creating classes of your own
Set - Assigns an object reference to a variable
- Set X = form1.txtInputFromUser
- Very useful for making code more readable or
simply to cut down on how much typing you have to do!
Let - Precedes assignment of a value to a
variable
- Let i = 3
- It's optional, no one uses, so forget you
ever saw it
Type...End Type - Creates a user defined part
type which consists of standard VB data types
- type anytypename
- one as string
- two as integer
- three as boolean
- End Type
- This is a really excellent way to keep
several kinds of data under one variable name. Plus, you can PUT or
GET a user-defined type with a single line of code.
Const - Creates a variable whose value is fixed
- const anyname
- Basically, use this to give easy to remember
names to values. For example, suppose you use the value 37.2 a lot
in your code, then if you put CONST MyAge = 37.2 in your code you'll
be able to insert the MyAge where the 37.2 should have gone. Easier
to type and easier to read. Also, you can chane the value of the
constant by changing only the declaration line of code, rather than
searching out every place the value was used!
Declare - Used to define a procedure that exists
in another file
- declare functionname (arg1 as integer, arg2
as string) as integer
-
- ArrayName = Array (10, 20, 30)
- Implements - Specifies a class to be
implemented in a module
- Friend - Allows procedure to be callable
from modules outside the class
- GetObject - Return a reference to an ActiveX
component
- CreateObject - Creates and returns a
reference to an ActiveX object
- GetAutoServerSettings - Returns information
about the state of an ActiveX component's registration.
- Enum - Declares a type for an enumeration
- Event - Declares a user-defined event
- TypeName - Returns the type of data in a
variable
- VarType - Returns the type of data in a
variable
- DefType - Sets the default data type of
variables
- IS - A variety of data type or status
checking options
- IsArray,
IsBindable, IsBroken, IsDate, IsDirty, IsEmpty, IsError,
IsMissing, IsNull, IsNumber, IsObject, IsReady, IsRootFolder
Date/Time
These
functions are pretty self-explanatory so I've not added any extra comments
to them.
- Date - Gets the current date
- Time - Gets the current time
- Now - Gets the current date and time
- Timer - Returns the number of seconds since
midnight
- DateAdd - Adds a time interval to a date
- DateDiff - Returns how many time intervals
there are between two dates
- DateSerial - Returns the month/day/year
- DateValue - Returns the date
- Year - Returns the current year
- Month - Returns the current month (integer)
- MonthName - Returns the text of the name of a
month
- Day - Returns the current day
- Hour - Returns the current hour
- Minute - Returns the current minute
- Second - Returns the current second
- TimeSerial - Returns a date with the
hour/minute/second
- TimeValue - Returns the time
- WeekDay - Returns the current day of the week
(integer)
- WeekDayName - Returns the text of a day of the
week
Miscellaneous
In this list you'll find
some of the features of VB about which I get a lot of email questions! The
MsgBox is easily the most used of the bunch. It handles all of the
"Y/N" queries to your user so get to know it well. Also, the DoEvents,
Shell, and Command functions are indispensable in certain occasions so
make sure you know when they should be used.
- MsgBox - A built-in dialog box that gives a
message and allows a user input
- i = msgbox "Read this!",
vbokonly, "Test Message"
- DoEvents - Allows VB to complete pending tasks
- Shell - Executes a 2nd program from within the
current program
- shell "notepad.exe"
- Note - VB does not wait for the Shell'd
program to quit before executing the next line of code!
- Command - Gives any text that followed a VB
.EXE execution command
- Environ - Returns the system environmental
space content
- Beep - Makes the computer beep once.
- InputBox - A built-in dialog box that allows
entry of a text string
- inputbox "Input a value!", 5
- AddressOf - Provides an entry point for an
external program to use a procedure
- AddressOf ( procedurename )
- AppActivate - Activates an applications window
- AppActivate ( windowtitle )
- RaiseEvent - Fires an event declared at module
level
- Load - Load an object
- Unload - Unload an object
- LoadPicture - Load a picture into a control
property
- form1.picture = loadpicture (filename)
- SavePicture - Save a picture to a file
- SavePicture(form1.picture,filename)
- LoadResData - Load the data from a resource
file
- LoadResData(index,format)
- LoadResString - Load a string from a resource
file
- LoadResString(index,format)
- SendKeys - Send keys to another app as though
they were from the keyboard
- QBColor - Returns a value corresponding to the
original QB values 0-15
- form1.backcolor = QBcolor (12)
- RGB - Returns a color value by inputting the
red, green, and blue parts
- form1.backcolor = RGB (12,128,256)
- Me - Refers to the current object, usually the
active form
Registry
I've never quite
understood why Microsoft got away from the use of an INI file. The ability
to use a simple text editor to resolve problems with a program's settings
was a key feature about INI files. Also, no matter how Windows crashed, the
INI file was protected.
Whining aside, VB has
made it incredibly easy to access values in the registry. The following VB
functions are simple to use and there's hardly any excuse for not taking
advantage of them. One thing to remember is that the registry save strings
so if you're saving or reading numeric information then may have to do some
string manipulation with the results.
- GetSetting - Get a value from the Registry
- temp$ = getsetting "TestApp",
"SectionName", "KeyName", "defaultvalue"
- GetAllSettings -Returns a list of key settings
and their values
- GetAllSettings(appname,section)
- SaveSetting - Save a value into the Registry
- savesetting "TestApp",
SectionName, KeyData
- DeleteSetting - Deletes an entry from the
registry
- deletesetting "TestApp", "SectionName",
"Keyname"
Loops and Conditional
Decisions
While the event-driven
model of VB has taken out a lot of the need for controlling the flow of your
application, don't think for a second that you can get by without being an
expert on these features of VB. Virtually every single procedure you'll ever
write will have one or more of these in it. The concepts are simple, so take
the time to become a master of each one! The For...Next and the Select
Case statements are the two most used, so concentrate on them first.
- If..Then..Else - Performs code based on the
results of a test
- If A>5 Then Print "A is a bit
number!"
- For...Next - Loops a specified number of times
- For i = 1 to 5: print #1, i: next i
- For Each ... Next - Walks through a collection
- For Each X in Form1.controls: Next X
- While...Wend - Loops until an event is false
- while i < 5: i = i +1: wend
- Select Case - Takes an action based on a value
of a parameter
- select case i
- case 1 : print "it was a 1"
- case 2 : print "it was a 2"
- end select
- Do...Loop - Loops until conditions are met
- do while i < 5 : i = i + 1 : loop
- IIF - Returns 1 of two parts, depending on the
value of an expression
- result = IIF (testexpression,
truepart, falsepart)
- Choose - Selects and returns a value from a
list of arguments
- Choose (index, "answer1",
"answer2", "answer3")
- With - Executes a series of statements on a
single object
- With textbox1
- .Height = 100
- .Width = 500
- End With
- End - Immediately stops execution of a program
- Stop - Pauses execution of a program (can
restart without loss of data)
- Switch - Returns a value associated with the
first true expression in a list
- result = Switch (testvalue1, answer1,
testvalue2, answer2)
- GoTo - Switches execution to a new line in the
code
- GoSub ... Return - Switches execution to a new
block of code and then returns
- On .. GoSub - Branch to a specific line of
code then return at the next Return statement
- On Number GoSub Line1, Line2, Line3
- On .. GoTo - Branch to a specific line of code
- On Number GoTo Line1, Line2, Line3
Special Values
There are some keywords
in VB which take on special meaning. Their use can be confusing at times,
but you'll get used to the terminology as your programming experience grows.
- True - A logical (Boolean) expression. In VB,
its value is -1
- False - A logical (Boolean expression. In VB,
its value is 0
- Nothing - Disassociates an object variable
from an actual object
- Null - Indicates that a variable has no valid
data
- Empty - Indicates that a variable has not yet
been initialized
Error Handling
Try as I might, I cannot
create error free code! So, I turn to these VB features to help me figure
out what went wrong.
- On Error - Enables an error-handling routine
- On Error GoTo Line2 (if error occurs, go
to line2)
- On Error Resume Next (if error occurs,
continue executing next line of code)
- On Error Goto 0 (disables error handling)
- Resume - Used to resume execution after a
error-handling routine is finished
- Resume
- Resume Next
- Resume Line1
- CVErr - Returns an error type variable
containing a user-specific error number
- Error - Simulates the occurrence of an error
Financial Calculations
For those folks who want
to use VB for performing routine investment calcuations, VB provides a
variety of functions. Personally, I use them very infrequently, but I
suspect they are used regularly by a lot of programmers. I've never gotten a
single question in the mail about these functions!
- DDB - Returns the depreciation of an asset for
a specific time period
- FV - Returns the future value of an annuity
- IPmt - Returns the interest payment of an
investment
- IRR - Returns the internal rate of return on a
cash flow
- MIRR - Returns a modified internal rate of
return on a cash flow
- NPer - Returns a number of periods for an
annuity
- NPV - Returns a present value of an investment
- PPmt - Returns the principal payment of an
annuity
- PV - Returns the present value of an annuity
- Rate - Returns the interest rate per period
for an annuity
- SLN - Returns the straight-line depreciation
of an asset
SYD
- Returns the sum-of-years' digits depreciation of an asset
|
|