Visual Basic (VB), sometimes referred to as Classic Visual Basic, is a
third-generation programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
based on
BASIC
Basic or BASIC may refer to:
Science and technology
* BASIC, a computer programming language
* Basic (chemistry), having the properties of a base
* Basic access authentication, in HTTP
Entertainment
* Basic (film), ''Basic'' (film), a 2003 film
...
, as well as an associated
integrated development environment
An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
(IDE). Visual Basic was developed by
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
for
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
, and is known for supporting
rapid application development
Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to ...
(RAD) of
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
(GUI) applications,
event-driven programming
In computer programming, event-driven programming is a programming paradigm in which the Control flow, flow of the program is determined by external Event (computing), events. User interface, UI events from computer mouse, mice, computer keyboard, ...
, and both consumption and development of
components
Component may refer to:
In engineering, science, and technology Generic systems
*System components, an entity with discrete structure, such as an assembly or software module, within a system considered at a particular level of analysis
* Lumped e ...
via the
Component Object Model
Component Object Model (COM) is a binary-interface technology for software components from Microsoft that enables using objects in a language-neutral way between different programming languages, programming contexts, processes and machines ...
(COM) technology.
VB was first released in 1991. The final release was version 6 (VB6) in 1998. On April 8, 2008, Microsoft stopped supporting the VB6 IDE, relegating it to
legacy
Legacy or Legacies may refer to:
Arts and entertainment
Comics
* " Batman: Legacy", a 1996 Batman storyline
* '' DC Universe: Legacies'', a comic book series from DC Comics
* ''Legacy'', a 1999 quarterly series from Antarctic Press
* ''Legacy ...
status. The Microsoft VB team still maintains compatibility for VB6 applications through its "It Just Works" program on supported Windows operating systems.
Visual Basic .NET
Visual Basic (VB), originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language developed by Microsoft and implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the ...
(VB.NET) is based on Classic Visual Basic. Because VB.NET was later rebranded back to Visual Basic, the name is ambiguous: it can refer to either Classic Visual Basic or to the .NET version.
Just as BASIC was originally intended to be easy to learn, Microsoft intended the same for VB.
Development of a VB application is exclusively supported via the VB
integrated development environment
An integrated development environment (IDE) is a Application software, software application that provides comprehensive facilities for software development. An IDE normally consists of at least a source-code editor, build automation tools, an ...
(IDE), an application in the contemporary Visual Studio suite of tools. Unlike modern versions of
Visual Studio
Visual Studio is an integrated development environment (IDE) developed by Microsoft. It is used to develop computer programs including web site, websites, web apps, web services and mobile apps. Visual Studio uses Microsoft software development ...
, which support many languages including VB (.NET), the VB IDE only supports VB.
In 2014, some
software developer
Software development is the process of designing and Implementation, implementing a software solution to Computer user satisfaction, satisfy a User (computing), user. The process is more encompassing than Computer programming, programming, wri ...
s still preferred Visual Basic 6.0 over its successor,
Visual Basic .NET
Visual Basic (VB), originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language developed by Microsoft and implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the ...
.
Visual Basic 6.0 was selected as the most dreaded programming language by respondents of
Stack Overflow
In software, a stack overflow occurs if the call stack pointer exceeds the stack bound. The call stack may consist of a limited amount of address space, often determined at the start of the program. The size of the call stack depends on many fa ...
's annual developer survey in 2016, 2017, and 2018.
Overview
As was the intention of older
BASIC
Basic or BASIC may refer to:
Science and technology
* BASIC, a computer programming language
* Basic (chemistry), having the properties of a base
* Basic access authentication, in HTTP
Entertainment
* Basic (film), ''Basic'' (film), a 2003 film
...
variants, VB was intended to have a low
learning curve
A learning curve is a graphical representation of the relationship between how proficient people are at a task and the amount of experience they have. Proficiency (measured on the vertical axis) usually increases with increased experience (the ...
. Further, the IDE was intended to promote productivity; even for complex
GUI applications. Programming involves ''visually'' arranging
component
Component may refer to:
In engineering, science, and technology Generic systems
*System components, an entity with discrete structure, such as an assembly or software module, within a system considered at a particular level of analysis
* Lumped e ...
s or
controls on a
form
Form is the shape, visual appearance, or configuration of an object. In a wider sense, the form is the way something happens.
Form may also refer to:
*Form (document), a document (printed or electronic) with spaces in which to write or enter dat ...
, specifying attributes and actions for those components, and writing
code
In communications and information processing, code is a system of rules to convert information—such as a letter, word, sound, image, or gesture—into another form, sometimes shortened or secret, for communication through a communicati ...
that directs behavior. Since components have default attributes and actions, a programmer can develop a simple program without writing much code.
Programs built with earlier versions suffered performance problems, but faster computers and native code compilation made this less of an issue.
Since a VB program is compiled as a native code
executable
In computer science, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instruction (computer science), in ...
instead of interpreted as old BASIC variants, it runs relatively fast and requires relatively little storage space. But,
from version 5 on, it requires relatively large library files to be loaded at runtime; about 1 MB. Core runtime libraries are included by default in
Windows 2000
Windows 2000 is a major release of the Windows NT operating system developed by Microsoft, targeting the server and business markets. It is the direct successor to Windows NT 4.0, and was Software release life cycle#Release to manufacturing (RT ...
and later, but extended runtime components require extra installation consideration. Earlier versions of
Microsoft Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
(95/98/NT), require the runtime libraries to be distributed with the executable.

Forms are created using
drag-and-drop
In computer graphical user interfaces, drag and drop is a pointing device gesture in which the user selects a virtual object by "grabbing" it and dragging it to a different location or onto another virtual object. In general, it can be used to ...
techniques. A tool is used to place controls (e.g., text boxes, buttons, etc.) on the form (window). Controls have
attributes and
event handler
In computing, an event is a detectable occurrence or change in the system's state, such as user input, hardware interrupts, system notifications, or changes in data or conditions, that the system is designed to monitor. Events trigger responses or ...
s associated with them. Default values are provided when the control is created, but may be changed by the programmer. Many attribute values can be modified during run time based on user actions or changes in the environment, providing a dynamic application. For example, code can be inserted into the form resize event handler to reposition a control so that it remains centered on the form, expands to fill up the form, etc. By inserting code into the event handler for a keypress in a text box, the program can automatically translate the case of the text being entered, or even prevent certain characters from being inserted.
Development in the IDE is organized as a ''project'' which can be configured to output as a
program (
EXE
Exe or EXE may refer to:
* .exe, a file extension
* exe., abbreviation for Executive (disambiguation)#Role, title, or function, executive
Places
* River Exe, in England
* Exe Estuary, in England
* Exe Island, in Exeter, England
Transportation a ...
), a
dynamic-link library
A dynamic-link library (DLL) is a shared library in the Microsoft Windows or OS/2 operating system. A DLL can contain executable code (functions), data, and resources.
A DLL file often has file extension .dll even though this is not required ...
(DLL) or an
ActiveX control library (OCX) which is a specialized DLL.
Controls provide the graphical functionality of a GUI application, and programmers attach code to event handlers to perform actions. For example, a drop-down control displays a list of items. When the user selects an item, an event handler is automatically called that executes the code that the programmer attached to the handler.
For a DLL, the VB code generally provides no user interface, and instead provides COM objects to other programs. This allows for capabilities such as
server-side processing or an add-in module.
Via the COM technology, unused memory is recovered for reuse using
reference counting
In computer science, reference counting is a programming technique of storing the number of references, pointers, or handles to a resource, such as an object, a block of memory, disk space, and others.
In garbage collection algorithms, refere ...
; recovering when the count reaches zero. VB reduces the count when a variable goes out of scope or when assigned to
Nothing
. This design prevents
memory leak
In computer science, a memory leak is a type of resource leak that occurs when a computer program incorrectly manages memory allocations in a way that memory which is no longer needed is not released. A memory leak may also happen when an objec ...
s that plague some, older languages such as C & C++. It differs significantly from the more modern approach of
garbage collection
Waste collection is a part of the process of waste management. It is the transfer of solid waste from the point of use and disposal to the point of treatment or landfill. Waste collection also includes the curbside collection of recyclable ...
.
VB provides a large library of utility objects, and it provides basic support for
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
.
Unlike many other programming languages, VB code is not
case-sensitive
In computers, case sensitivity defines whether uppercase and lowercase letters are treated as distinct (case-sensitive) or equivalent (case-insensitive). For instance, when users interested in learning about dogs search an e-book, "dog" and "Dog ...
though the IDE transforms
keywords into a standard case and variable names to match the case used elsewhere in the project. Of note,
string
String or strings may refer to:
*String (structure), a long flexible structure made from threads twisted together, which is used to tie, bind, or hang other objects
Arts, entertainment, and media Films
* ''Strings'' (1991 film), a Canadian anim ...
comparison is case sensitive by default.
The VB compiler is shared with other Visual Studio suite languages, C and C++. Nevertheless, by default the restrictions in the IDE do not allow creation of some targets (Windows model DLLs) and threading models, but over the years, developers have bypassed these restrictions.
Features

Visual Basic has notable features and characteristics that are in some cases different than other BASIC variants or from other common languages:
* Enables
rapid application development
Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to ...
(RAD) of
graphical user interface
A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
(GUI) applications, access to
database
In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
s using
Jet Data Access Objects,
Remote Data Objects, or
ActiveX Data Object (ADO), and creation of
ActiveX
ActiveX is a deprecated software framework created by Microsoft that adapts its earlier Component Object Model (COM) and Object Linking and Embedding (OLE) technologies for content downloaded from a network, particularly from the World Wide W ...
controls and COM objects.
* Supports
event-driven programming
In computer programming, event-driven programming is a programming paradigm in which the Control flow, flow of the program is determined by external Event (computing), events. User interface, UI events from computer mouse, mice, computer keyboard, ...
* Allows use of the
Windows API
The Windows API, informally WinAPI, is the foundational application programming interface (API) that allows a computer program to access the features of the Microsoft Windows operating system in which the program is running. Programs can acces ...
via an external function declaration technology
* Supports sharing and reuse via the COM
component
Component may refer to:
In engineering, science, and technology Generic systems
*System components, an entity with discrete structure, such as an assembly or software module, within a system considered at a particular level of analysis
* Lumped e ...
technology. A
programmer
A programmer, computer programmer or coder is an author of computer source code someone with skill in computer programming.
The professional titles Software development, ''software developer'' and Software engineering, ''software engineer' ...
can create an application using components provided by VB, developed internally or from third parties. Over time the development community produced and shared many components.
* Unlike older BASIC variants, instead of requiring line numbers to support branching, code is grouped into named blocks delimited by ''Sub...End Sub'' or ''Function...End Function''. VB retains line number support
* Code statements have no terminating character other than a line ending (carriage return/line feed), and versions since 3 allow for multi-line statements for concatenation of strings or explicitly using the underscore character (_) at the end of a line
* A code comment is denoted by a single apostrophe (') character, like:
* Looping statement blocks begin and end with keywords: ''Do...Loop, While...End While, For...Next''
* Chained variable assignment is not allowed; for example
A = B = C
does not result in the values of A, B and C being equal. The
Boolean result of "is B equal to C?" is stored in A
* Like other BASIC variants, but unlike many other languages that use 1, Boolean
True
has numeric value −1. VB stores a Boolean as a
two's complement
Two's complement is the most common method of representing signed (positive, negative, and zero) integers on computers, and more generally, fixed point binary values. Two's complement uses the binary digit with the ''greatest'' value as the ''s ...
signed integer with all ones in binary for true and zero for false. This is apparent when performing a (bitwise)
Not
operation on the two's complement value 0, which returns the two's complement value −1, in other words
True = Not False
. This inherent functionality becomes especially useful when performing logical operations on the individual bits of an integer such as
And
,
Or
,
Xor
and
Not
. This definition of
True
is also consistent with BASIC since the early 1970s Microsoft BASIC implementation and is also related to the characteristics of CPU instructions at the time.
* Logical and bitwise operators are unified. This is unlike some C-derived languages (such as
Perl
Perl is a high-level, general-purpose, interpreted, dynamic programming language. Though Perl is not officially an acronym, there are various backronyms in use, including "Practical Extraction and Reporting Language".
Perl was developed ...
), which have separate logical and bitwise operators. This is a traditional feature of BASIC.
* Unlike for many languages which use zero for the lower bound of an
array, VB allows the lower bound to be any value like in
Pascal and
Fortran. The
Option Base
statement can be used to set the default lower bound, but some claim that its use leads to confusion when reading code and is best avoided by always explicitly specifying the lower bound. This uncommon language trait does exist in
Visual Basic .NET
Visual Basic (VB), originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language developed by Microsoft and implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the ...
but not in
VBScript
VBScript (Microsoft Visual Basic Scripting Edition) is a deprecated programming language for scripting on Microsoft Windows using Component Object Model (COM), based on classic Visual Basic and Active Scripting. It was popular with system admi ...
.
:
OPTION BASE
was introduced by ANSI, with the standard for ANSI Minimal BASIC in the late 1970s.
* Tightly bound to the
Windows operating system and the
Component Object Model
Component Object Model (COM) is a binary-interface technology for software components from Microsoft that enables using objects in a language-neutral way between different programming languages, programming contexts, processes and machines ...
. The native types for strings and arrays are the dedicated COM types, BSTR and SAFEARRAY.
*
Banker's rounding as the default behavior when converting real numbers to integers with the
Round
function.
? Round(2.5, 0)
gives 2,
? Round(3.5, 0)
gives 4.
* An integer type value is automatically promoted to a floating point type in expressions that involve the normal division operator (
/
) so that division of one integer by another produces a result that may seem more intuitive from a mathematical perspective. VB provides an integer divide operator (
\
) that does truncate.
* By default, if a variable has not been declared or if no type declaration character is specified, it acts like a
variant
. However this can be changed with Deftype statements such as
DefInt
,
DefBool
,
DefVar
,
DefObj
,
DefStr
. There are 12
Deftype
statements in total offered by Visual Basic 6.0. The default type may be overridden for a specific declaration by using a special suffix character on the variable name (
#
for Double,
!
for Single,
&
for Long,
%
for Integer,
$
for String, and
@
for Currency) or using the key phrase
As (type)
. VB can be set up to require variable declarations via
Option Explicit
.
History

''
BYTE
The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable un ...
'' reported in 1989 that, based on its experience with Macintosh software development, Microsoft "wants to provide a development environment that mimics the delivery environment". BASIC's string handling was preferable to C, the company's Greg Lobdell said, when developing the mostly transaction-processing applications Microsoft expected
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
tools to create.
Visual Basic 1.0 was introduced in 1991. The drag and drop design for creating the user interface is derived from a prototype form generator developed by
Alan Cooper and his company called ''Tripod''. Microsoft contracted with Cooper and his associates to develop Tripod into a programmable form system for
Windows 3.0, under the code name ''Ruby'' (no relation to the later
Ruby programming language
Ruby is a general-purpose programming language. It was designed with an emphasis on programming productivity and simplicity. In Ruby, everything is an object, including primitive data types. It was developed in the mid-1990s by Yukihiro "Mat ...
). Tripod did not include a programming language at all.
Microsoft decided to combine Ruby with the Basic language to create Visual Basic. The Ruby interface generator provided the "visual" part of Visual Basic, and this was combined with the "EB" Embedded BASIC engine designed for Microsoft's abandoned "Omega" database system. Ruby also provided the ability to load
dynamic link libraries containing additional controls (then called "gizmos"), which later became the VBX interface.
Timeline
* Project 'basic Thunder' was initiated in 1990. Thunder persisted through to the last release of Visual Basic in the name of the primary internal function, "ThunderRTMain".
* Visual Basic 1.0 (May 1991) was released for Windows at the Comdex/Windows World trade show in Atlanta, Georgia.
* Visual Basic 1.0 for
DOS
DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
was released in September 1992. The language itself was not quite compatible with Visual Basic for Windows, as it was the next version of Microsoft's DOS-based BASIC compilers,
QuickBASIC
Microsoft QuickBASIC (also QB) is an Integrated Development Environment (or IDE) and compiler for the BASIC programming language that was developed by Microsoft. QuickBASIC runs mainly on DOS, though there was also a short-lived version for the c ...
and BASIC Professional Development System. The interface used a
text-based user interface
In computing, text-based user interfaces (TUI) (alternately terminal user interfaces, to reflect a dependence upon the properties of computer terminals and not just text), is a retronym describing a type of user interface (UI) common as an ear ...
, using
extended ASCII
Extended ASCII is a repertoire of character encodings that include (most of) the original 96 ASCII character set, plus up to 128 additional characters. There is no formal definition of "extended ASCII", and even use of the term is sometimes critic ...
characters to simulate the appearance of a
GUI.
* Visual Basic 2.0 was released in November 1992. The programming environment was easier to use, and its speed was improved. Notably, forms became instantiable objects, thus laying the foundational concepts of class modules as were later offered in VB4.
* Visual Basic 3.0 was released in the summer of 1993 and came in Standard and Professional versions. VB3 included version 1.1 of the
Jet Database Engine
The Access Database Engine (also Office Access Connectivity Engine or ACE and formerly Microsoft Jet Database Engine, ''Microsoft JET Engine'' or simply ''Jet'') is a database engine on which several Microsoft products have been built. The firs ...
that could read and write Jet (or Access) 1.x databases.
* Visual Basic 4.0 (August 1995) was the first version that could create
32-bit
In computer architecture, 32-bit computing refers to computer systems with a processor, memory, and other major system components that operate on data in a maximum of 32- bit units. Compared to smaller bit widths, 32-bit computers can perform la ...
as well as
16-bit
16-bit microcomputers are microcomputers that use 16-bit microprocessors.
A 16-bit register can store 216 different values. The range of integer values that can be stored in 16 bits depends on the integer representation used. With the two ...
Windows programs. It has three editions; Standard, Professional, and Enterprise. It also introduced the ability to write non-GUI classes in Visual Basic. With VB4 the language was separated from the GUI library, and made available as VBA, in which form it was embedded with the Office 95 suite. To ease migration of Office macros and scripts, features from WordBasic, Excel Basic and Access Basic were incorporated into the language. Incompatibilities between different releases of VB4 caused installation and operation problems. While previous versions of Visual Basic had used VBX controls, Visual Basic now used OLE controls (with files names ending in .OCX) instead. These were later to be named ActiveX controls.
* With version 5.0 (February 1997), Microsoft released Visual Basic exclusively for
32-bit
In computer architecture, 32-bit computing refers to computer systems with a processor, memory, and other major system components that operate on data in a maximum of 32- bit units. Compared to smaller bit widths, 32-bit computers can perform la ...
versions of Windows. Programmers who preferred to write 16-bit programs were able to import programs written in Visual Basic 4.0 to Visual Basic 5.0, and Visual Basic 5.0 programs can easily be converted to Visual Basic 4.0. Visual Basic 5.0 also introduced the ability to create custom user controls, as well as the ability to compile to native Windows executable code, speeding up calculation-intensive code execution. A free, downloadable Control Creation Edition was also released for creation of
ActiveX control
ActiveX is a deprecated software framework created by Microsoft that adapts its earlier Component Object Model (COM) and Object Linking and Embedding (OLE) technologies for content downloaded from a network, particularly from the World Wide Web. ...
s. It was also used as an introductory form of Visual Basic: a regular .exe project could be created and run in the IDE, but not compiled.
* Visual Basic 6.0 (Mid-1998) improved in a number of areas including the ability to create web-based applications.
* Mainstream Support for Microsoft Visual Basic 6.0 ended on March 31, 2005, and ''Extended'' support ended in March 2008. However, primary components of the Visual Basic 6 ''development'' environment run in all 32-bit versions of Windows up to and including Windows 11.
Learning
Classic Visual Basic was released before the commercial Internet, so learning VB programming skills involved using digital help resources shipped with the product, attending user group meetings, and buying books and magazines. A range of book publishers supplied materials for new and experienced VB programmers, including Microsoft Press, IDG Books, Howard W. Sams, O’Reilly, Osborne McGraw-Hill, Que, Sybex, Ventana Press, Wiley, Wrox, and Ziff Davis Press.
When Visual Basic 1.0 was released, just a few commercial books were available, but publishers caught up with demand by Visual Basic 3.0 (1993), a release designed to coincide with
Windows 3.1.
Popular VB programming books included:
* John Clark Craig's ''Microsoft Visual Basic Programmer’s Workshop'' (1991), a book-and-software toolkit for Visual Basic 1.0 programmers.
* Ross Nelson’s ''Running Visual Basic for Windows'' (1992), one of the first introductory primers for new programmers, released for Visual Basic 2.0 and updated for Visual Basic 3.0.
* Michael J. Young's ''Visual Basic—Game Programming for Windows'' (1992), an early game programming book for Windows that featured ready-to-run strategy games and fractals.
*
Michael Halvorson's ''Microsoft Visual Basic 4 Step by Step'' (1995), a book that introduced Visual Basic 4.0 programming by focusing on the new
Windows 95
Windows 95 is a consumer-oriented operating system developed by Microsoft and the first of its Windows 9x family of operating systems, released to manufacturing on July 14, 1995, and generally to retail on August 24, 1995. Windows 95 merged ...
user interface and topics like event-driven programming, managing data, using toolbox controls, processing text, and debugging.
* Bruce McKinney’s ''Hardcore Visual Basic: Secrets, Shortcuts, and Solutions for Programming Windows without Using C'' (1995), a text for advanced VB users that taught Windows programming techniques usually implemented in
Microsoft C
Microsoft Visual C++ (MSVC) is a compiler for the C, C++, C++/CLI and C++/CX programming languages by Microsoft. MSVC is proprietary software; it was originally a standalone product but later became a part of Visual Studio and made available i ...
.
* Dan Appleman’s ''Visual Basic 5.0 Programmer’s Guide to the Win32 API'' (1997), which included information from the
Windows SDK about using the features of Windows 95 and
Windows NT 4.0.
* John Connell's ''Beginning Visual Basic 6 Database Programming'' (1998), written for VB programmers who needed to access information in corporate databases, a topic of major interest in the late 1990s and 2000s.
Derivative technologies
Microsoft
Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
developed many derivatives of VB (classic), including:
*
Visual Basic .NET
Visual Basic (VB), originally called Visual Basic .NET (VB.NET), is a multi-paradigm, object-oriented programming language developed by Microsoft and implemented on .NET, Mono, and the .NET Framework. Microsoft launched VB.NET in 2002 as the ...
is Microsoft's successor to Visual Basic 6.0, and part of Microsoft's
.NET
The .NET platform (pronounced as "''dot net"'') is a free and open-source, managed code, managed computer software framework for Microsoft Windows, Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft emplo ...
ecosystem (which over time has sometimes been called framework and core). It is not
backwards compatible with Visual Basic 6.0. An automated conversion tool exists, but fully automated conversion for most projects is not possible.
*
Visual Basic for Applications
Visual Basic for Applications (VBA) is an implementation of Microsoft's event-driven programming language Visual Basic 6, Visual Basic 6.0 built into most desktop Microsoft Office applications. Although based on pre-.NET Visual Basic, which is no ...
(VBA) is a
scripting language
In computing, a script is a relatively short and simple set of instructions that typically automation, automate an otherwise manual process. The act of writing a script is called scripting. A scripting language or script language is a programming ...
embedded in many Microsoft applications such as
Microsoft Office
Microsoft Office, MS Office, or simply Office, is an office suite and family of client software, server software, and services developed by Microsoft. The first version of the Office suite, announced by Bill Gates on August 1, 1988, at CO ...
, and third-party products like
SolidWorks
SolidWorks (stylized as SOLIDWORKS) is a brand of software used for solid modeling computer-aided design (CAD) and computer-aided engineering (CAE). It was one of the first 3D CAD applications designed to run on a desktop PC.
The brand is owned ...
,
AutoCAD
AutoCAD is a 2D and
3D computer-aided design (CAD) software application developed by Autodesk. It was first released in December 1982 for the CP/M and IBM PC platforms as a desktop app running on microcomputers with internal graphics control ...
,
WordPerfect Office 2002,
ArcGIS
ArcGIS is a family of client, server and online geographic information system (GIS) software developed and maintained by Esri.
ArcGIS was first released in 1982 as ARC/INFO, a command line-based GIS. ARC/INFO was later merged into ArcGIS De ...
,
Sage 300 ERP, and Business Objects Desktop Intelligence. There are small inconsistencies in the way VBA is implemented in different applications, but it is largely the same language as Visual Basic 6.0 and uses the same runtime library. Visual Basic development ended with 6.0, but in 2010 Microsoft introduced VBA 7 to provide extended features and add 64-bit support.
*
VBScript
VBScript (Microsoft Visual Basic Scripting Edition) is a deprecated programming language for scripting on Microsoft Windows using Component Object Model (COM), based on classic Visual Basic and Active Scripting. It was popular with system admi ...
is the default language for
Active Server Pages
Active Server Pages (ASP) is Microsoft's first server-side scripting language and engine for dynamic web pages.
It was first released in December 1996, before being superseded in January 2002 by ASP.NET.
History
Initially released as an a ...
. It can be used in
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
scripting and client-side
web page
A web page (or webpage) is a World Wide Web, Web document that is accessed in a web browser. A website typically consists of many web pages hyperlink, linked together under a common domain name. The term "web page" is therefore a metaphor of pap ...
scripting. It resembles VB in
syntax
In linguistics, syntax ( ) is the study of how words and morphemes combine to form larger units such as phrases and sentences. Central concerns of syntax include word order, grammatical relations, hierarchical sentence structure (constituenc ...
, but is a separate language—executed by vbscript.dll instead of the VB runtime. ASP and VBScript should not be confused with
ASP.NET
ASP.NET is a server-side web-application framework designed for web development to produce dynamic web pages. It was developed by Microsoft to allow programmers to build dynamic web sites, applications and services. The name stands for Ac ...
, which uses the
.NET Framework for compiled web pages.
*
OpenOffice Basic is a Visual Basic compatible interpreter that originated in
StarOffice
StarOffice is a discontinued proprietary software, proprietary office suite. Its source code continues today in derived open-source office suites Collabora Online and LibreOffice. StarOffice supported the OpenOffice.org XML file format, as well ...
office suite.
*
Gambas is a Visual Basic inspired
free software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
programming language for the Linux operating system. It is not a clone of Visual Basic, but it does have the ability to convert Visual Basic programs to Gambas.
*
LotusScript is a VBA variant available in
Lotus SmartSuite
SmartSuite is a discontinued office suite from Lotus Software. The company made versions of its office suite for IBM OS/2 and Microsoft Windows.
Status
SmartSuite is no longer supported or maintained.
SmartSuite used to be in maintenance mode, ...
and
Lotus Notes
HCL Notes (formerly Lotus Notes then IBM Notes) is a proprietary collaborative software platform for Unix ( AIX), IBM i, Windows, Linux, and macOS, sold by HCLTech. The client application is called Notes while the server component is branded ...
.
* Later versions of
Corel WordPerfect Office implement access to VBA as one of the macro/scripting languages, the other major ones being
CorelScript and
PerfectScript.
* Earlier versions of
Microsoft Word
Microsoft Word is a word processor program, word processing program developed by Microsoft. It was first released on October 25, 1983, under the name Multi-Tool Word for Xenix systems. Subsequent versions were later written for several other platf ...
use a variant of VB called
WordBasic
WordBASIC was a subset of Microsoft QuickBASIC customized for word-processing in Microsoft Word. It was replaced by Visual Basic for Applications (VBA) when Word 97 was released. Contrarily to VBA, WordBasic was not object-oriented
Object-o ...
.
Issues
Performance
Versions before 5 compiled the code to
P-Code
Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (normal ...
which is interpreted at runtime. The benefits of P-Code include portability and smaller binary file sizes, but it usually slows execution, since an interpreter adds a layer to the execution environment. VB applications require the Microsoft VB runtime MSVBVM##.DLL, where ## is a version number, either 50 or 60. MSVBVM60.dll comes standard with Windows in all editions from Windows 98 to Windows 11 although some editions of Windows 7 do not include it. For Windows 95 however the application installation process requires the DLL needed by the program. VB 5 and 6 can compile code to either native or P-Code but the runtime is still required for built-in functions and forms management.
Other
Criticisms of VB (prior to VB.NET) include:
* versioning problems associated with DLLs, known as "
DLL hell"
* poor support for
object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
* can only create multi-
threaded applications using ActiveX or DLL
*
variant type
In computer science, a tagged union, also called a variant, variant record, choice type, discriminated union, disjoint union, sum type, or coproduct, is a data structure used to hold a value that could take on several different, but fixed, types. ...
s having a greater performance and storage "overhead" than
strongly-typed programming languages
* dependency on complex and fragile COM registry entries
Legacy development and support
All versions of the Visual Basic IDE, from 1.0 to 6.0, are no longer supported by Microsoft. The associated runtime environments are also unsupported, except for the Visual Basic 6 core runtime environment, which Microsoft officially supports for the lifetime of
Windows 10
Windows 10 is a major release of Microsoft's Windows NT operating system. The successor to Windows 8.1, it was Software release cycle#Release to manufacturing (RTM), released to manufacturing on July 15, 2015, and later to retail on July 2 ...
and
Windows 11
Windows 11 is a version of Microsoft's Windows NT operating system, released on October 5, 2021, as the successor to Windows 10 (2015). It is available as a free upgrade for devices running Windows 10 that meet the #System requirements, Windo ...
. Third party components that shipped with Visual Studio 6.0 are not included in this support statement. Some legacy Visual Basic components may still work on newer platforms, despite being unsupported by Microsoft and other vendors. Documentation for Visual Basic 6.0, its application programming interface and tools is best covered in the last
MSDN
Microsoft Developer Network (MSDN) was the division of Microsoft responsible for managing the firm's relationship with developers and testers, such as hardware developers interested in the operating system (OS), and software developers developing ...
release before Visual Studio.NET 2002. Later releases of MSDN focused on .NET development and had significant parts of the Visual Basic 6.0 programming documentation removed as the language evolved, and support for older code ended. Although vendor support for Visual Basic 6 has ended, and the product has never been supported on the latest versions of Windows, key parts of the environment still work on newer platforms. It is possible to get a subset of the development environment working on 32-bit and 64-bit versions of Windows Vista, Windows 7, Windows 8, Windows 10 and Windows 11. Owing to its persistent remaining popularity, third-party attempts to further support it, such as Rubberduck, exist.
Example code
The following code snippet displays a message box saying "Hello, World!" as the window loads:
Private Sub Form_Load()
' Execute a simple message box that says "Hello, World!"
MsgBox "Hello, World!"
End Sub
This snippet makes a counter that moves up 1 every second (a label and a timer control need to be added to the form for this to work) until the form is closed or an
integer overflow
In computer programming, an integer overflow occurs when an arithmetic operation on integers attempts to create a numeric value that is outside of the range that can be represented with a given number of digits – either higher than the maximu ...
occurs:
Option Explicit
Dim Count As Integer
Private Sub Form_Load()
Count = 0
Timer1.Interval = 1000 ' units of milliseconds
End Sub
Private Sub Timer1_Timer()
Count = Count + 1
Label1.Caption = Count
End Sub
See also
* – a function in several editions of Visual Basic roughly equivalent to the
?: conditional operator of C and related languages.
*
Comparison of programming languages
*
Control array
References
External links
Visual Basic 6.0 Resource CenterSecure your Visual Basic 6.0 investment with Microsoft .NET Migrating from Visual Basic 6.0 to Visual Basic 2008
Visual Basic 6 Renewed to Run on Windows 8Instructions for installing Visual Basic 6 on a Windows 10 computer
{{Authority control
Articles with example BASIC code
BASIC compilers
BASIC interpreters
Integrated development environments
Microsoft BASIC
Microsoft development tools
Microsoft programming languages
Basic
Basic or BASIC may refer to:
Science and technology
* BASIC, a computer programming language
* Basic (chemistry), having the properties of a base
* Basic access authentication, in HTTP
Entertainment
* Basic (film), ''Basic'' (film), a 2003 film
...
Object-based programming languages
Object-oriented programming languages
Procedural programming languages
Programming languages
Programming languages created in 1991
BASIC programming language family
User interface builders