[Mono-list] Re: Am confused
Marco Parenzan
thinkingindotnet@libero.it
Wed, 18 Sep 2002 17:16:17 +0200
This is a multi-part message in MIME format.
------=_NextPart_000_001A_01C25F37.1980D9F0
Content-Type: text/plain;
charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
Some precisations:
>Brief summary. Highly suspect, but brief, and has the highlights. ;-)
>1. Microsoft BASIC on DOS
>2. Microsoft extends/rewrites, named Visual Basic 1.0
Microsoft writes Visual Basic 1.0 on Alan Cooper's work named Ruby =
(an environment that allow to draw windows - in 1987) and on QuickBasic
>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;=20
> same (similar?) syntax, different object model (to take advantage
> of the applications). First introduced (IIRC) with Office 6.0 for=20
> Windows 3.1. Initially supported in Excel & Access; Word not=20
> supported until Office 95 or 97.
Microsoft added basic like macro languages to Access 1.0 and Excel. =
they were VB-like (not VB subset). VBA starts appearing with office 4.2 =
(Excel 5.0 and Access 2.0), but again different from VB1.0/2.0/3.0.
The big change comes with VB5.0/6.0 in which VBA for Office 97 and =
VB are completly rewritten and VBA is a real subset of VB (just look =
into DLLs - they are the same)
VB become "the COM-language" in the Internet/ActivceX era.
>5. Internet gets big; Microsoft releases smaller version of VBA, calls =
> it VB Script. Used primarily with IIS ASP, Windows Scripting Host,
> etc.
VBScript is not a VBA Subset: is a kind of JavaScript with VB syntax =
- and some different costructs (it's like VB.NET that can be though as a =
C# with VB syntax)
>6. Microsoft works on .NET; changes VB syntax/semantics, calls it=20
> 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 not scripting: it's a real compilation as it was under VB6. =
VB was instead completly interpreted only until VB3.0 (and 4.0, if I =
remember well)
>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.
VBA is not a VBScript interpreter, but they use the same approach: =
when you host VBScript or VBA, you have to add you object model =
(example: Excel adds Workbook/Worksheets objects to VBA engine)
>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
------=_NextPart_000_001A_01C25F37.1980D9F0
Content-Type: text/html;
charset="Windows-1252"
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Dwindows-1252">
<META content=3D"MSHTML 6.00.2800.1106" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>
<DIV><SPAN class=3D053135614-18092002>Some precisations:</SPAN></DIV>
<DIV><SPAN class=3D053135614-18092002></SPAN> </DIV>
<DIV><SPAN class=3D053135614-18092002>></SPAN>Brief summary. =
Highly=20
suspect, but brief, and has the highlights. ;-)<BR><BR><SPAN=20
class=3D053135614-18092002>></SPAN>1. Microsoft BASIC on =
DOS<BR><SPAN=20
class=3D053135614-18092002>></SPAN>2. Microsoft =
extends/rewrites, named=20
Visual Basic 1.0<BR></DIV><SPAN class=3D053135614-18092002></SPAN><SPAN=20
class=3D053135614-18092002>
<DIV><SPAN class=3D053135614-18092002><FONT face=3DArial =
size=3D2> =20
Microsoft writes Visual Basic 1.0 on Alan Cooper's work named Ruby (an=20
environment that allow to draw windows - in 1987) and on=20
QuickBasic</FONT></SPAN></DIV>
<DIV><SPAN class=3D053135614-18092002><FONT face=3DArial=20
size=3D2></FONT></SPAN> </DIV>
<DIV>></SPAN>3. Visual Basic is popular; has several revisions =
(VB 1.0=20
- VB 6.0)<BR><SPAN class=3D053135614-18092002>></SPAN>4. =
Microsoft gets=20
great idea that there should be a common scripting<BR><SPAN=20
class=3D053135614-18092002>></SPAN> language across =
all=20
Microsoft products; calls it VBA (Visual Basic<BR><SPAN=20
class=3D053135614-18092002>></SPAN> for =
Applications). =20
It's a simplified version of Visual Basic; <BR><SPAN=20
class=3D053135614-18092002>></SPAN> same (similar?) =
syntax,=20
different object model (to take advantage<BR><SPAN=20
class=3D053135614-18092002>></SPAN> of the=20
applications). First introduced (IIRC) with Office 6.0 =
for <BR><SPAN=20
class=3D053135614-18092002>></SPAN> Windows =
3.1. =20
Initially supported in Excel & Access; Word not <BR><SPAN=20
class=3D053135614-18092002>></SPAN> supported until =
Office 95=20
or 97.<BR><SPAN class=3D053135614-18092002></SPAN></DIV><SPAN=20
class=3D053135614-18092002>
<DIV><SPAN class=3D053135614-18092002><FONT face=3DArial=20
size=3D2></FONT></SPAN> </DIV>
<DIV><SPAN class=3D053135614-18092002><FONT face=3DArial =
size=3D2> =20
Microsoft added basic like macro languages to Access 1.0 and Excel. they =
were=20
VB-like (not VB subset). VBA starts appearing with office 4.2 (Excel 5.0 =
and=20
Access 2.0), but again different from VB1.0/2.0/3.0.</FONT></SPAN></DIV>
<DIV><SPAN class=3D053135614-18092002> <FONT =
face=3DArial=20
size=3D2>The big change comes with VB5.0/6.0 in which VBA for Office 97 =
and VB are=20
completly rewritten and VBA is a real subset of VB (just look into DLLs =
- they=20
are the same)</FONT></SPAN></DIV>
<DIV><SPAN class=3D053135614-18092002><FONT face=3DArial =
size=3D2> =20
VB become "the COM-language" in the Internet/ActivceX =
era.</FONT></SPAN></DIV>
<DIV><SPAN class=3D053135614-18092002><FONT face=3DArial=20
size=3D2></FONT></SPAN> </DIV>
<DIV>></SPAN>5. Internet gets big; Microsoft releases smaller =
version=20
of VBA, calls <BR><SPAN=20
class=3D053135614-18092002>></SPAN> it VB =
Script. Used=20
primarily with IIS ASP, Windows Scripting Host,<BR><SPAN=20
class=3D053135614-18092002>></SPAN> etc.<BR><SPAN=20
class=3D053135614-18092002></SPAN></DIV><SPAN =
class=3D053135614-18092002>
<DIV><SPAN class=3D053135614-18092002><FONT face=3DArial=20
size=3D2></FONT></SPAN> </DIV>
<DIV><SPAN class=3D053135614-18092002><FONT face=3DArial =
size=3D2> =20
VBScript is not a VBA Subset: is a kind of JavaScript with VB syntax - =
and some=20
different costructs (it's like VB.NET that can be though as a =
C# =20
with VB syntax)</FONT></SPAN></DIV>
<DIV><SPAN class=3D053135614-18092002><FONT face=3DArial=20
size=3D2></FONT></SPAN> </DIV>
<DIV>></SPAN>6. Microsoft works on .NET; changes VB =
syntax/semantics,=20
calls it <BR><SPAN =
class=3D053135614-18092002>></SPAN> =20
VB.NET.<BR><BR><SPAN class=3D053135614-18092002>></SPAN>The deal with =
VBA,=20
primarily, is a library that developers can link into<BR><SPAN=20
class=3D053135614-18092002>></SPAN>their applications to allow =
scripting of the=20
applications. All the<BR><SPAN=20
class=3D053135614-18092002>></SPAN>developer needs to do is expose a =
COM object=20
model (implement lots of<BR><SPAN =
class=3D053135614-18092002>></SPAN>IDispatch=20
COM interfaces), and link in the VBA library. (Of course,<BR><SPAN =
class=3D053135614-18092002>></SPAN>this simplifies things a bit; the =
object=20
model must be created, and<BR><SPAN =
class=3D053135614-18092002>></SPAN>there=20
are probably more steps to add VBA.) After this, users can =
write<BR><SPAN=20
class=3D053135614-18092002>></SPAN>VBA script, utilizing the =
applications=20
object model, and script the<BR><SPAN=20
class=3D053135614-18092002>></SPAN>application.<BR></DIV>
<DIV><SPAN class=3D053135614-18092002><FONT face=3DArial=20
size=3D2></FONT></SPAN> </DIV>
<DIV> VBA is not scripting: it's a real compilation as =
it was=20
under VB6. VB was instead completly interpreted only until VB3.0 (and =
4.0, if I=20
remember well)</DIV>
<DIV><BR><SPAN class=3D053135614-18092002>></SPAN>VBA is basically a =
VBScript=20
interpreter, linked to the application so<BR><SPAN=20
class=3D053135614-18092002>></SPAN>that it knows about the program's =
object=20
model, which interprets VBA<BR><SPAN=20
class=3D053135614-18092002>>></SPAN>scripts the user =
provides.</DIV>
<DIV> </DIV>
<DIV>
<DIV><SPAN class=3D053135614-18092002><FONT face=3DArial size=3D2>
<DIV><SPAN class=3D053135614-18092002><FONT face=3DArial =
size=3D2> =20
VBA is not a VBScript interpreter, but they use the same approach: when =
you host=20
VBScript or VBA, you have to add you object model (example: Excel adds=20
Workbook/Worksheets objects to VBA=20
engine)</FONT></SPAN></DIV></FONT></SPAN></DIV><BR><SPAN=20
class=3D053135614-18092002>></SPAN>As for the relationship between =
Access,=20
Excel, and VBA, all Office apps<BR><SPAN=20
class=3D053135614-18092002>></SPAN>expose an object model which can =
be scripted=20
through COM, as described<BR><SPAN=20
class=3D053135614-18092002>></SPAN>above. Access, Excel, et. al =
merely=20
expose the object model so the<BR><SPAN=20
class=3D053135614-18092002>></SPAN>script interpreter can =
operate. They=20
accept scripts written in VBA (a<BR><SPAN=20
class=3D053135614-18092002>></SPAN>superset of VBScript), but they =
can also be=20
"scripted" through "normal"<BR><SPAN =
class=3D053135614-18092002>></SPAN>COM=20
interop, allowing for control from C/C++, Perl, TCL/TK, and =
any<BR><SPAN=20
class=3D053135614-18092002>></SPAN>other COM-supporting =
language.<BR><BR><SPAN=20
class=3D053135614-18092002>></SPAN>Hope this provides an adequate=20
summary.<BR><BR><SPAN class=3D053135614-18092002>></SPAN> -=20
Jon</DIV></FONT></DIV></BODY></HTML>
------=_NextPart_000_001A_01C25F37.1980D9F0--