[Mono-list] Am confused.

Jonathan Pryor jonpryor@vt.edu
17 Sep 2002 12:03:03 -0400


Brief summary.  Highly suspect, but brief, and has the highlights. ;-)

1.  Microsoft BASIC on DOS
2.  Microsoft extends/rewrites, named Visual Basic 1.0
3.  Visual Basic is popular; has several revisions (VB 1.0 - VB 6.0)
4.  Microsoft gets great idea that there should be a common scripting
    language across all Microsoft products; calls it VBA (Visual Basic
    for Applications).  It's a simplified version of Visual Basic; 
    same (similar?) syntax, different object model (to take advantage
    of the applications).  First introduced (IIRC) with Office 6.0 for 
    Windows 3.1.  Initially supported in Excel & Access; Word not 
    supported until Office 95 or 97.
5.  Internet gets big; Microsoft releases smaller version of VBA, calls 
    it VB Script.  Used primarily with IIS ASP, Windows Scripting Host,
    etc.
6.  Microsoft works on .NET; changes VB syntax/semantics, calls it 
    VB.NET.

The deal with VBA, primarily, is a library that developers can link into
their applications to allow scripting of the applications.  All the
developer needs to do is expose a COM object model (implement lots of
IDispatch COM interfaces), and link in the VBA library.  (Of course,
this simplifies things a bit; the object model must be created, and
there are probably more steps to add VBA.)  After this, users can write
VBA script, utilizing the applications object model, and script the
application.

VBA is basically a VBScript interpreter, linked to the application so
that it knows about the program's object model, which interprets VBA
scripts the user provides.

As for the relationship between Access, Excel, and VBA, all Office apps
expose an object model which can be scripted through COM, as described
above.  Access, Excel, et. al merely expose the object model so the
script interpreter can operate.  They accept scripts written in VBA (a
superset of VBScript), but they can also be "scripted" through "normal"
COM interop, allowing for control from  C/C++, Perl, TCL/TK, and any
other COM-supporting language.

Hope this provides an adequate summary.

 - Jon

On Tue, 2002-09-17 at 11:18, Miguel de Icaza wrote:
> Hello guys,
> 
>    I am confused about the Basic programming language offerings from
> Microsoft.  So I understand there is VB.NET, and I understand that there
> was an older version of VB called VB6.  Now, what is the deal with VBA?
> 
>    For instance, what is the relationship between Access and Excel and
> all these VB languages?
> 
> Miguel
> 
> _______________________________________________
> Mono-list maillist  -  Mono-list@ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list