Welcome to the homepage of  VBSInc



888     888 888888b.    .d8888b.      8888888                   
888     888 888  "88b  d88P  Y88b       888                     
888     888 888  .88P  Y88b.            888                     
Y88b   d88P 8888888K.   "Y888b.         888   88888b.   .d8888b 
 Y88b d88P  888  "Y88b     "Y88b.       888   888 "88b d88P"    
  Y88o88P   888    888       "888       888   888  888 888      
   Y888P    888   d88P Y88b  d88P       888   888  888 Y88b.    
    Y8P     8888888P"   "Y8888P"      8888888 888  888  "Y8888P 

Click here if you are interessted in our XSelect which allows you to run SQL-queries against textfiles/logfiles/.txt/.csv ...

Click here if you are interessted in our Xlistbox which offers you an enchanced RealBASIC listbox class with coloring and more...

Click here if you are interessted in our XClasses which allow you access Hardware/Networking and WMI functions under RealBASIC...

What is  VBSInc ?


Would you like to develop VBS code like this ?


Then probably you need VBSInc


VBSInc allows you to include code from "include files" into your VBS code.

VBSInc reads the contents of the specified include files and merges them into the VBS code.

The result will be a single VBS file containg the code of all include files that you have selected to be included.


VBSInc will allow you to create a library of tested,  reusable code for your VBS projects.


Why use VBSInc ?

There exist other methods like the "ExecuteGlobal" statement - why should you use VBSInc ?


In  case of an error,  executeGlobal will not tell you the linenumber or include filename for the statement that has caused the error.

Instead, executeGlobal will tell you something like this : "test.vbs (0,1)  Runtimerror :   permission denied  : GetObject"

It will be much fun to find the  "GetObject" statement in "line zero" in one of the files that you have included...

VBSInc will tell you the name of the include file and the line number within the include file which has caused an error.


Using ExecuteGlobal you will need to distribute your include-files as separate files because they are read at run-time.

This can complicate the distribution of your VBS projects.

VBSInc merges the content of all include files into the VBS file - so there is only one single VBS file containing the entire code.


Since VBSInc creates one single VBS file containing all the code from you include file you can easily compile it to an .exe or .vbe and hide your entire sourecode

You can also use external debugger etc. to analyze your VBS code


VBSInc allows you to used nested include files, i.e  an include file can contain other include files

So you can create an include file "Default.inc" containing your mostly used include files.


VBSInc will display information of the usage of each  function, sub or class.

With this you will see what parts of your include files are used or not used.

While this is not a full cross-reference it will give you a good idea about the usage of the code from your include files.



In addition to include-files you can use macros (aliases), too.

A macro allows you to shorten VBS commands.

instead of you can use
wscript.echo #p
function #f
end function #ef
CreateObject ("Scripting.FileSystemObject") #fso
myLongVariablename #v

The code in the inputfile using macros may look like this:

 #f my_function()

if a=1 then

    #p "a=1"

    #v = 1


    #p "a<>1"

    #v = 2

end if

        my_function = #v



You will find more information about using macros in the documention file found in the download.


How does it work?

Basically there are 3 steps to do:


1. Firstly you need the "include files"  (*.inc) - these are the files that contain your resuable code

An .inc file consists of  functions, subs, classes or constants... any VBS code that you want to reuse in different projects.


For example :

c:\includeFiles\wmi.inc :

sub Display_Printers()

'** returns screen output of all installed printers

sDelimiter = ":"
strComputer = "."

Set objWMIService = GetObject ("winmgmts:\\" & strComputer & "\root\cimv2")
Set colPrinters = objWMIService.ExecQuery ("Select * From Win32_Printer")

For Each objPrinter in colPrinters




2. You need an "input file"

This file describes which include files are to be used together with your project-specific VBS code:

The input file contains 2 kinds of statements:

( An input file can have any extension, in our examples we use .txt )

For example an input file may look like this :


#include c:\includeFiles\wmi.inc
#include c:\includeFiles\constants.inc


3. Based on the "input file" from the previous step you now need to merge the include files and your project-code into a VBS file using  VBSInc:

vbsinc -[inputfilename]

For example the commandline for starting VBSINC can look like this :

vbsinc -wmi.txt


The result will be a file called  "wmi.vbs"  that contains the content of  "wmi.inc"  plus "wmi.txt"




The download contains VBSInc with some sample projects and a documentation PDF (6 pages):

VBSInc is not limited or crippled in any way so you can test a "full version".


Download VBSInc



VBSInc is free for private use.

If you use VBSInc for commercial projects please support us and buy a licence.

This includes priority email-support.


We have many ideas about what can be added to VBSInc in the future.

This includes features like full cross-reference \ usage of functions, subs and classes, removal of unused code from the VBS file, conditional compiling and the usage of "remote" includes over the internet.

However, we need some positive feedback :-)


Order (yes.. this is a positive feedback :-)

We use    to process your order


15 Euro for : VBSInc 



Releasedate Version Comment
20.07.09 1.0
  • Initial Release
02.08.09 1.1
  • Add support for macros





(C) 2008, 2009 www.Scout-Soft.com