VBS Tutorial - Basics

176,667

24

44

Posted in TechnologyMicrosoft

Introduction: VBS Tutorial - Basics

Ok so some people have been asking me where did i learn my vbs from .. i learned from various websites, like the w3schools , even know that is for web scripting you can still use it from plain vbs.

I learn it from websites you'll learn it from me =D

So lets get started ...

What is vbs?
VBScript is a Microsoft scripting language. -_- so being Microsoft they go and make it so it only works on IE. But as well as being a web script it is used for all kinds of things ...
for example on pic 2) (that's the second pic) That is take from the System 32 folder. Vbs can also be used to make programs .. but that's VB.NET .. uses most of the same coding though.

Please enjoy the tutorial .. and please comment and rate.
And please tell me if someone has beet me to making a vbs tutorial .. but i couldn't find one.
Other than cammel8 who seems to be really good with vbs scripting =P .. but i'm still gonna make the tutorial.

Step 1: Basics of Vbs

Ok so here are the basics .. stuff you should already know ...

You save the files as: something.vbs
It's not like a batch file it doesn't have a screen telling you information.
In a way it's much like javascript. But at the same time it's nothing like it.

to make a var you use dim
e.g .. dim iRule
now you would have a variable call iRule

now you can start to add things to you vars .. like:
iRule=msgbox("hello")
this would make a message box pop up saying hello. (pic 1)

Along with that you can add different buttons to the message box ..
here is all about message boxes: HERE
so many tutorials on them that i won't even bother to go into them.

Also with vars you can dim vars in an array:
dim iRule(3)
but that would turn out like this: (because 0 is included)

iRule(0)="var1"
iRule(1)="var2"
iRule(2)="var3"
iRule(3)="var4"

Using vars in the script..

You can use vars easily ..
you could have: (pic 2)


dim iRule
dim instructables

iRule="instructables"

instructables=msgbox("hello " & iRule)

Because of the & it says 'hello instructables' becuse the value of iRule is instructables.

Subs

You can also have subs:
A sub is a procedure that does NOT give a return value.

Sub iRule(arg1,arg2,arg3)
...Script...
End Sub

The arg 1,2,3 are the Arguments.

That about all of the basics .. enjoy them .. or keep reading for not so basics..

Step 2: Not So Basics of Vbs

I'm going to start this step with Functions... because i always find them annoying .. even though they are quite easy =P

functions in vbs are easy.. ish .. they can get confusing..
Lets start with an easy function: (pic 1)


Function times(x,y)
times = x * y
End Function

Dim result
dim var1

result = times(10,10)

var1=msgbox(result)


This would give you 100
let me explain ....
you told it to times 10 by 10..
result = time(10,10)
this went to the function times

x is now 10 and y is now 10
so: x * y return value with answer.



For, Next, Do, Loop

The For , Next loop can be used to repeat things, for example:


for var = 0 to 5
msgbox(var)
next
msgbox("Finish")


This will pop up a message box counting 0,1,2,3,4,5 then it will say 'Finish'
REMEMBER in vbs 0 nearly always counts!
so that code would repeat a command 6 times e.g:

for var = 0 to 5
msgbox("hello")
next
msgbox("Finish")

the message 'hello' would come up 6 times. on the 7th time it will say Finish.

If you add: step ... to the end of for var = 0 to 5 e.g
for var = 0 to 5 step 5
that will make it jump 5 each time.. in this case the message will only show twice because 5 is the limit.
You can also step down as well .. e.g. step -5 would count down 5 each time.

Do, Loop
the do loop is used to loop a piece of code over and over and over ect. mainly used for viruses =P

but you can use them to help you .. say if you wanted to keep saying a message until a certain option is picked. You can always add a Until on the do or on the loop part. e.g.
do until var=5
but in the code you must make it add 1 or more to the var .. or it will keep on looping.

You can also use do from thing like: do while var=10
this will only do the commands if var is equal to 10!

That's all for the Not So Basics of vbs.

Step 3: The If's and Then's

Theses are quite easy to get but i decided they needed a page in case someone didn't know what they did.
But really they are very easy : e.g

if instructables=TheBest then msgbox ("yes it is!")

But that is not hard as we all know that instructables is the best. =P
...now for multi-lined ifs and thens ... (scary music)

but there not that scary you just add a end if at the end of the is statement. e.g

if instructables=TheBest then
msgbox ("yes it is!")
msgbox ("really it is!")
end if

this will pop up with 2 messages one after the other, 'yes it is!' and 'really it is!'
the the end if statement closes it.



the else and elseif
These are not hard either ..

the else is just for when you want one option for one thing and another for the rest.. e.g

if var=1 then
msgbox ("var is 1")
else
msgbox ("var is not 1")
end if

so if var doesn't = 1 it will always say 'var is not 1'

the elseif is also very similar ...e.g

if var=1 then
msgbox ("var is 1")

elseif var=2 then
msgbox ("var is 2 ")

else
msgbox ("var is not 1 or 2")
end if

this would make it so if var was 1 or 2 it would say var is 1/2 ... but if it's not then it will say var is not 1 or 2.

Step 4: Case's

cases are simple and can make you life much easier .. e.g of simple case:


Dim FavCol
FavCol = "red"
Select Case FavCol
Case "Black"
msgbox("your Fav Colour is Black")
Case "red"
msgbox("your Fav Colour is Red")
Case "Yellow"
msgbox("your Fav Colour is Yellow")
Case Else
msgbox("Now your just confusing")
End Select

this simple script will select options from a list in this case it will tell you your fav colour is red.

Let me go into it in a bit more detail ...

you get your var : Dim var, var="iRule" var can quel anything
then you ask the vbs to look through a list to find your var ...
if it cannot find it it will go to the: Case Else which is just like the if, else command.
if it finds your var it will execute

Step 5: Passing Vars

If you look around on the internet you'll find that lots of peopl want to know how to pass vars between batch to vbs and vbs to batch...
I'll show you the best way i found:

Since this is a vbs tutorial I'll show you how to transfer vars from vbs to batch first ...

VBS TO BATCH

This is the vbs:


dim a

a=InputBox("Type in somthing:","Var")

dim WshShell
set WshShell=Wscript.Createobject("Wscript.shell")
wshshell.run "test.bat " & a

This will ask you to type in a var then it will call test.bat passing the var you typed in.
a = what you typed in.

here is the batch:

@echo off

echo %1

pause
exit

this will write the var that you typed into the vbs..
Simple...

for multiple var just add:
the vbs: wshshell.run "test.bat " & a & b & var3 ect .. remember to set them a value
the batch: echo %1 %2 %3 ect..

BATCH TO VBS

the batch:

@echo off

set var=hello
wscript test.vbs %var%

this will sent 'hello' to test.vbs

the vbs:

dim ArgObj, a
Set fso = CreateObject("Scripting.FileSystemObject")
Set ArgObj = WScript.Arguments
a = ArgObj(0)

msgbox(a)

this will display 'hello' in the message box.

for multiple vars for batch to vbs easily add another var e.g
the batch: wscript test.vbs %var% %var2%
the vbs:

dim ArgObj, a, b
Set fso = CreateObject("Scripting.FileSystemObject")
Set ArgObj = WScript.Arguments
a = ArgObj(0)
b = ArgObj(1)
msgbox(a)
msgbox(b)

REMEMBER 0 counts

If you have any problems with these please pm or comment.

Share

    Recommendations

    • Casting Contest

      Casting Contest
    • Make it Move Contest

      Make it Move Contest
    • Woodworking Contest

      Woodworking Contest
    user

    We have a be nice policy.
    Please be positive and constructive.

    Tips

    Questions

    44 Comments

    About 9 years after the original post. Have just read this tutorial. Thumbs up to the original poster (aka IRule). The world needs more people like this - that show how to start making things happen and easy to follow (like in this tutorial). I didn't know any vbs scripting at all before. This tutorial is starting me off, and I think it is great.

    Original:

    SouthParkBucket 3 years ago



    Reply

    About 6 years after the original post. Have just read this tutorial. Thumbs up to the original poster (aka IRule). The world needs more people like this - that show how to start making things happen and easy to follow (like in this tutorial). I didn't know any vbs scripting at all before. This tutorial is starting me off, and I think it is great.

    About 6 years after the original post. Have just read this tutorial. Thumbs up to the original poster (aka IRule). The world needs more people like this - that show how to start making things happen and easy to follow (like in this tutorial). I didn't know any vbs scripting at all before. This tutorial is starting me off, and I think it is great.

    I have made a program, it writes the basic HTML code for you in notepad all you have to do is edit.

    Want to download the vbs file?

    Visit: http://htmlbuddy.blogspot.com/

    Hey dude! I have made a password protect VBS. When you enter the correct password into the inputbox I want it to open a .bat file which is located in the same folder as the VBS. But I can never find the right way to open the .bat via vbs. Here is the current code:

    Option Explicit

    Dim returnvalue, pass, Shell

    pass="test"

    returnvalue=inputbox("Enter password")

    If returnvalue=pass then

    msgbox("Password correct!")

    set Call=createobject("wscript.shell")

    Call.run "Hack Client.bat"

    set Call=Nothing

    Else

    do

    msgbox("Password incorrect!")

    loop

    End If

    Plz help me. Thanks!

    1 reply

    First where is the folder located?

    To find this out right click go to properties and click general.

    Reply to me then I can help fix this error.

    I have this script:

    Set WshShell = CreateObject("WScript.Shell")
    dim a
    a = "C:\Program Files (x86)\MyProgram\MyApplication.jar"
    WshShell.Run "javaw -jar " & a

    but when i execute, i got error message:

    "Error: Unable to access jarfile: C:\Program"

    Please help. How to fix this?

    Thanks

    2 replies

    Two errors found while I looked through your code.

    First Error "a="

    Second Error "C:\Program Files (x86)\MyProgram\MyApplication.jar"

    How to fix:

    First of all instead of "a=" type wshshell.run

    Second type """C:\Program Files (x86)\MyProgram\MyApplication.jar""" where

    "C:\Program Files (x86)\MyProgram\MyApplication.jar" is.

    I did not understand the

    WshShell.Run "javaw -jar " & a

    So I hope this helps.

    @bayuforest

    Try to do it with escape characters, because you have spaces in the file path. So the code would be:

    a = """C:\Program Files (x86)\MyProgram\MyApplication.jar"""

    (yes with three " before and after the path)

    Cheers and have fun coding.

    Can you tell me how to make the red X work please? I am just trying to close my message box

    visual basic 10.

    I was searching for this a very long time.. Thanks U saved my time

    Does the case look for the actual variable, and not the value?

    How would I end this code?

    a=InputBox("Do you like Cheesecake?:","Var")
    if var=yes then
    msgbox ("YAY! I like cheesecake too!")
    if var=no then
    msgbox ("Aww..... You suck. Cheesecake is the best!")

    It's probably something obvious.

    4 replies

    i looked over this script and it was kind of right but the if shouldn't be var= it should be a as that is the input box name. Also it took me a while to work out why it wasn't working but turns out that you hadn't declared the var and that was last thing i thought of lol, here it is working.
    ..........
    dim a
    a=InputBox("Do you like Cheesecake?:","title")
    if a=("yes") Then
     msgbox("YAY! I like cheesecake too!")
    elseif a=("no") Then
    msgbox("Aww..... You suck. Cheesecake is the best!")
    else
    msgbox("Enter yes or no!")
    End If 
    ..........
    hope it helped, sorry for the slow reply.

    I know it's two years ago but I've played a bit a made this


    dim a

    a=InputBox("Do you like Cheesecake?:","title")

    if a=("yes") Then

    msgbox("YAY! I like cheesecake too!")

    elseif a=("Yes") Then

    msgbox("YAY! I like cheesecake too!")

    elseif a=("No") Then

    msgbox("Aww..... You suck. Cheesecake is the best!")

    elseif a=("no") Then

    msgbox("Aww..... You suck. Cheesecake is the best!")

    else

    msgbox("Enter yes or no!")

    CreateObject("WScript.Shell").Run("""cheesecake.vbs""")

    End If

    Hope it's good :) It'll loop (if filename is cheesecake.vbs) until you write "Yes", "yes", "No" or "no" :)

    SORRY for the REALLY slow reply. Thanks man!

    not that i approve of freezing a pc lol but can't you just do:

    do
    set x = CreateObject("WScript.Shell")
    x.run "lol.bat"
    loop

    that's if you have a bat file named lol