标题：VB
英文翻译
英美发音visual— 英音：[ˋvizjuəl]；美音：[ˋvizjuəl]
basic— 英音：['beisik]；美音：['besik]基本释义visual — (adj.) 视觉的, 视力的, 看的见的, 形象的. 画面, 图象
basic— (adj.) 基本的, 基础的, 初级的, 含硅少的. 基础, 根本, 基本高级语言, [计] BASIC语言
合译（Visual Basic）：可图象操作的BASIC语言
发展历史
  VB 6.0 启动画面1991年，微软公司推出了 Visual Basic 1.0。当时引起了很大的轰动。这个连接编程语言和用户界面的进步被称为Tripod（有些时候叫做Ruby），最初的设计是由阿兰·库珀（Alan Cooper）完成的。许多专家把 VB 的出现当做是软件开发史上的一个具有划时代意义的事件。在当时，它是第一个“可视”的编程软件。这使得程序员欣喜之极，都尝试在VB的平台上进行软件创作。微软也不失时机地在四年内接连推出 2.0、3.0、4.0 三个版本。并且从 VB 3.0 开始，微软将Access的数据库驱动集成到了 VB 中，这使得 VB 的数据库编程能力大大提高。从 VB 4.0 开始，VB 也引入了面向对象的程序设计思想。VB 功能强大，学习简单。而且，VB 还引入了“控件”的概念，使得大量已经编好的 VB 程序可以被我们直接拿来使用。
2002年开始，微软将.NET Framework与 Visual Basic 结合而成为 Visual Basic .NET (vb .net)，重新打造 VB，新增许多特性及语法，又将 VB 推向一个新的高度。最新版本 Visual Basic 2012 也带将来许多令人期待的新功能。
通过几年的发展，它已成为一种专业化的开发语言和环境。用户可用Visual Basic 快速创建Windows程序，并可编写企业水平的客户端/服务器程序及强大的数据库应用程序。Visual Basic 各版本界面(8张)
Visual Basic 发展史简发布日期
名称
说明
.NET Framework 引入之前
1991-04
Visual Basic 1.0 Windows 版本
1992-09
Visual Basic 1.0 DOS 版本
1992-11
Visual Basic 2.0
对于上一个版本的界面和速度都有所改善。
1993-06
Visual Basic 3.0
包含一个数据引擎，可以直接读取 Access 数据库。
1995-08
Visual Basic 4.0
发布了32位和16位的版本。其中包含了对类的支持。
1997-02
Visual Basic 5.0
包含了对用户自建控件的支持，且从这个版本开始 VB 可以支持中文。
1998-10
Visual Basic 6.0
.NET Framework 引入之后
2002-02
Visual Basic .NET 2002 (7.0)
由于其使用了新的核心和特性，所以很多 VB 的程序员都要改写程序。
2003-04
Visual Basic .NET 2003 (7.1)
主要改进了运行状况，提升了 IDE 以及运行时稳定性。
2005-11
Visual Basic 2005 (8.0)
是 vb .net 的重大转变，微软决意在其名称中去掉了".NET"部份。VB2005 提供 My 伪命名空间、泛型、操作符重载，等新语言特性。
2007-11
Visual Basic 2008 (9.0)
提供支持 IIF 函数、匿名类、LINQ、Lambda 表达式、XML 数据结构，等新语言特性。
2008-03
微软宣布结束对于 VB 6.0 的延长支持。
2010-04
Visual Studio 2010 (10.0)
提供支持 Dynamic Language Runtime (DLR)、自动实现属性、集合初始化、不需要在代码断行书写时输入下划线“_”，等新语言特性。
2012-05
Visual Studio 2012 (11.0) RC
提供支持更简易的异步编程(Asynchronous Programming)、Iterator、扩充 Global 关键词，等新语言特性。
Visual Basic 1.0
1991——西雅图夜空的雷电
随着Windows 3.0的推出，越来越多的开发商对这个图形界面的操作系统产生了兴趣，大量的Windows应用程序开始涌现。但是，Windows程序的开发相对于传统的DOS有很大的不同，开发者必须将很多精力放在开发GUI上，这让很多希望学习Windows开发的人员怯步。1991年，微软公司展示了一个叫Thunder的产品，所有的开发者都惊呆了，它竟然可以用鼠标“画”出所需的用户界面，然后用简单的BASIC语言编写业务逻辑，就生成一个完整的应用程序。这种全新的“Visual”的开发就像雷电（Thunder）一样，给Windows开发人员开辟了新的天地。这个产品最终被定名为Visual Basic，采用事件驱动，Quick BASIC的语法和可视化的IDE。Visual Basic 1.0带来的最新的开发体验就是事件驱动，它不同于传统的过程式开发。同时，VBX控件让可视化组件的概念进入Visual Basic。Visual Basic 1.0 是革命性的BASIC，它的诞生也是 VB 史上的一段佳话。
Visual Basic 2.0
1992——渐入佳境
由于Windows 3.1的推出，Windows已经充分获得了用户的认可，Windows开发也进入一个新的时代。Visual Basic 1.0的功能过于简单，相对于Windows 3.1的强大功能没有发挥出来。所以，微软在1992年推出了新版本Visual Basic 2.0。这个版本最大的改进就是加入了对象型变量，比如下面的两行代码：
Dim b As CommandButton
Dim c As Control
不光如此，而且有了最原始的“继承”概念，对象型变量分为一般类型（Control和Form）和专有类型(CommandButton和Form1等)，一般类型的变量可以引用专有类型的实例，甚至通过后期绑定访问专有类型的属性和方法。还可以通过TypeOf…Is运算符获取对象实例的运行时类型信息（这个功能就是当今C#的is运算符或Java的instanceof运算符）。除了对语言的改进和扩充，Visual Basic 2.0对VBX有了很好的支持，许多第三方控件涌现出来，极大地丰富了Visual Basic的功能。微软还为Visual Basic 2.0增加了OLE和简单的数据访问功能。
Visual Basic 3.0
1993——数据库组件新添力量
Visual Basic 2.0推出没几个月，微软就发布了新版本的Visual Basic 3.0，可以看出VB这时候旺盛的生命力。乍一看，Visual Basic 3.0的界面没有太大的变化，但其实这个版本是非常及时的。它增加了最新的ODBC2.0的支持，Jet数据引擎的支持和新版本OLE的支持。最吸引人的地方是它对数据库的支持大大增强了，Grid控件和数据控件能够创建出色的数据窗口应用程序，而Jet引擎让Visual Basic能对最新的Access数据库快速地访问。Visual Basic 3.0还增加了许多新的金融函数。此外还增加了相当多的专业级控件，可以开发出相当水平的Windows应用程序。Visual Basic 3.0是98年以前中国最流行的Visual Basic版本，因为它开发出来的可执行文件非常小，通常能用一张软盘装下。不过，Visual Basic采用虚拟机运行P代码的做法也让很多开发者不满，他们认为这样程序运行的效率很低，这时候Visual Basic的竞争者Delphi也诞生了。
Visual Basic 4.0
1995——第二次革命性变化，向COM进军
从1993年到1995年年中，Visual Basic一直没有新的动静，焦急的开发者都想一窥这个神秘的新版本到底发生了什么变化。Visual Basic 4.0的BETA最后终于和大家见面了。这个版本包含了16位和32位两个版本，16位的版本就像是Visual Basic 3.0的升级版，而32位版则是一场新的革命。首先，人们发现VBX控件不见了，全部换成了OCX控件，这个OCX可能是指OLE Custom Controls，这个OLE已经不是传统的OLE了，用现在的话说，它就是COM控件。第二个最大变化是Visual Basic 4.0所用的语言换成了Visual Basic For Application，这就和Office 95所采用的宏语言统一起来，这个新语言有很多亮点：
1、 加入了“类模块”。这是面向对象最重要的封装性的基础。
2、 加入了属性过程，加上函数过程，子程序过程，VB 已经有组件开发所需的封装性特征。
3、 加入了 Byte、Boolean 和 Object 类型。这大大完善了 VB 的类型系统。
4、 For Each 语句和 Collection 对象。For Each 语句给遍历集合类型提供了极大的方便，现在可以在动态增长的 Collection 上使用 For Each，而不用担心集合内容的总数或烦人的下标问题。
这个版本的Visual Basic还能够开发DLL工程，其实就是COM的DLL，可以将书写好的类用这种方式和其他语言共享。
总之，这个4.0的版本为 Visual Basic 成为一种 COM 语言奠定了基础。用 Visual Basic 4.0 开发基于 COM 的 DLL 比任何一种开发工具都方便。但是，Visual Basic 4.0 的性能问题变得更加严重了，P-代码的组件成为 Visual Basic 4.0 严重的性能瓶颈，而且巨大的运行库也让用户感到不满。Visual Basic 4.0 对以前版本的支持也不好，使用了大量 VBX 的项目很难移植到 Visual Basic 4.0 中。因此，Visual Basic 4.0 在中国的普及程度非常低。
Visual Basic 5.0
1997——Visual Basic的丰收年
1997年，微软推出了Visual Basic 5.0，这个版本的重要性几乎和4.0一样高。COM（这时候叫ActiveX）已经相当成熟，Visual Basic 5.0当然对它提供了最强的支持。不过，国内还没有意识到COM的重要性前主要对这个版本另一个最大的亮点十分关注：本地代码编译器。Visual Basic 5.0终于在用户的呼声中加入了一个本地代码编译器，它可以让应用程序的效率大大提升。除了这个大家都知道的改进以外，Visual Basic 5.0对Visual Basic For Application语言有重大的完善和丰富：
1、 事件。Visual Basic 5.0终于允许用户自己创建事件，而且这事件的语法相当强健和完善，这在一种不支持函数回调的语言中是很难得的。现在，VB拥有属性、方法和事件的完整封装性。
2、 接口。这是VB实现多态性的基础。同时为编写COM组件提供了更多方便。
3、 枚举。在 Visual Basic 5.0 中枚举作为Long整型的子类型出现，用枚举可以对常量进行完善的封装。
4、类模块的改进。通过类模块的属性可以指定类模块具有多种指定的行为，如私有构造函数等，可以通过这个功能创建符合 Singleton 和 Monostate 模式的设计。
5、 Debug.Assert。虽然这个断言系统有点鸡肋，但是总算是给调试带来了方便。
6、 Visual Basic 5.0 支持创建自己的集合类。可以创建用于For Each语句的集合类型。
7、新的数据类型Decimal，可以精确地处理有效数位较多的计算。
Visual Basic 5.0 的 IDE 支持“智能感知”，这是一项非常方便开发者的功能，可以不必记住很长的成员名称和关键字，只要按“.”，想要的东西统统弹出来。
Visual Basic 5.0 还支持开发自己的 ActiveX控件、进程内的 COM DLL 组件、进程外的 COM EXE 组件以及在浏览器中运行的 ActiveX 文档。这极大丰富了 Visual Basic 的开发能力，在 Internet 开发上，Visual Basic 5.0 也能有所建树。
Visual Basic 6.0
  1998——企业真正高效的源泉
Visual Basic 6.0作为Visual Studio 6.0的一员发布，证明微软正在改变Visual Basic的产品定位，他想让Visual Basic成为企业级快速开发的利器。Visual Basic 6.0在数据访问方面有了很大的改进，新的ADO组件让对大量数据快速访问成为可能。数据环境和新的报表功能也让数据开发有了全新的体验。Visual Basic 借助COM/COM+强大的功能，可以开发具有N层结构的分布式应用程序。同时，Visual Basic还可以在IIS上开发性能超群的Web应用程序。Visual Basic 6.0在语言方面和IDE方面的改进都不大，但是许多新增的组件成为Visual Basic开发人员手中的利器，如File System Object等。新的字符串函数Split和Replace等也给Visual Basic的程序员带来很大方便。
总之 Visual Basic 6.0 已经是非常成熟稳定的开发系统，能让企业快速建立多层的系统以及 Web 应用程序，成为当前 Windows 上最流行的 Visual Basic 版本。
Visual Basic 6.0安装教程
1、准备工作: 下载软件
2、安装Visual Basic 6.0的步骤
① 把下载的压缩包解压出来
② 在解压出来的文件夹VB60CHS中双击文件“SETUP.EXE”执行安装程序。出现VB的安装向导。
③ 直接点击“下一步”，选中“接受协议”，再点击“下一步”
④ 在产品的ID号中全部输入“1”（用一串“1”把两个空格都填写满），姓名和公司名称任意填，再点击“下一步”
⑤ 选中“安装Visual Basic 6.0中文企业版”，再点击“下一步”
⑥ 一般情况下直接点击“下一步”（公用文件的文件夹可以不需要改变）， 稍等...，直接点击“继续”，直接点击“确定”，直接点击“是”
⑦ 选择“典型安装”或“自定义安装”，初学者可以选前者。在弹出对话框中直接点击“是”，
⑧ 在弹出的对话框中，点击“重新启动Windows”。
继续下一步安装
3、安装MSDN(帮助文件)
MSDN安装包并不包含在VB企业版中，需要另外下载！
① 重装启动计算机后，在出现的VB安装界面中可以直接安装帮助文件，选中“安装 MSDN”项，再点击“下一步”
② 在弹出的对话框中按“浏览”，找到“MSDN for VB 6.0”文件夹
③ 按“继续”按钮，再按“确定”， 选中“接受协议”
④ 按“自定义安装”，在“VB6.0帮助文件”前打钩，再点击“继续”
⑤ 完成MSDN的安装，点击“确定”。
⑥ 直接点击“下一步”，把“现在注册”项去掉，再点击“完成”，即完成了VB的安装  Visual Basic 6.0中文企业版
4、安装补丁程序
安装VB补丁程序这非常重要，它可以避免许多错误，并可以直接使用Access2000，否则要转换到低版本的Access数据库。
① 运行下载下来的VB60SP6-KB957924-v2-x86-CHS.msi文件，如果运行有问题，需要安装Windows Installer。
② 在弹出的对话框中按“继续”，再按“接受”许可协议
③ 按“确定”， 完成 VB补丁程序的安装
5、添加或删除Visual Basic 6.0组件
在VB 6.0安装完成后，可能还会遇到需添加未安装组件或删除不再需要组件的情况，此时需做添加或删除操作。
① 再次运行VB 6.0安装程序。
② 选择“工作站工具和组件”选项后，打开“添加/删除”对话框。
③ 根据需要单击对话框中的“添加/删除”、“重新安装”或“全部删除”按钮。
④ 单击“确定”按钮完成添加/删除工作。
Visual Basic .NET 2002
2002——第三次革命性变化，向.NET进军
从1998年发布到2002年正式推出 Visual Basic .NET 简直吊足了开发者的胃口。从2000年就开始传言的具有继承、Try…Catch 语句等新功能的全新 VB 7.0 一直没有露面。直到2001年，Visual Studio .NET 的第一个 Beta 版问世的时候，所有人都呆了——这是 Visual Basic 吗？And 语句变成了 BitAnd，数组只能从0下标开始，而且连 Dim 语句的意义都变了，几乎所有的窗体控件都变了，Long 变成了 Integer 而 Integer 变成了 Short，Variant 不见了，Static 不能用了……简直是翻天覆地，人们已经无暇关注这个版本有什么改进，转而担心我怎么才能接受这个版本了。其实 Visual Basic .NET 完全是为了 .NET Framework这一全新的平台而设计的，Visual Basic .NET 的设计者一开始没有掌握好新平台和旧语言的平衡。到了 Beta 2 中，很多东西回归了6.0，如 BitAnd 又变回了 And，数组的定义语句也变回了原有的意义，Static 也回到了 Visual Basic 中。但是 Beta 1 惊人的变化让所有的 VB 开发者怕了，他们觉得这种语言被改的千疮百孔，有些人干脆转去研究传说中的新语言C#。但是Visual Basic .NET 渡过几个 Beta 版本之后还是找到了正确的定位。Visual Basic .NET 有对 CLR 最完善的支持，同时尽量保留着 BASIC 易懂的语法风格和易用性。这个版本新增加的功能已经数不清，最重要的几个是：
1、 继承。至此，Visual Basic 完成了向面向对象转变的道路。
2、 共享成员。
3、 Try…Catch结构化异常处理。
4、 Delegate 和 Interface。
5、名称空间。
6、 对自由线程的支持。
特别的是，Visual Basic .NET 大大减少了 Visual Basic 语言的关键字，如 GoSub、PSet 等等。原先的 Visual Basic 有多达120个关键字，这给写程序带来了很大的不便，现在经过精简，Visual Basic 脱下了这个沉重的包袱。
Visual Basic .NET 现在是一门现代的、强壮的、面向对象的、简单的可视化开发语言。强大的语言功能吸引了很多开发者。历史是在不断重演的，Visual Basic .NET 如今的处境和 Visual Basic 4.0 很相似，由于兼容性变差，人气也降低了。同时由于依附于.NET Framework，程序发布造成了一定的困难。现在国内使用 Visual Basic .NET 的人相对于 Visual Basic 6.0 来讲显得很少。但是凭借 Visual Basic .NET 强大的语言功能和MS的支持，Visual Basic .NET 一定会显出它的光辉来。
Visual Basic .NET 2003
2003——稳中求变的新版本
Visual Basic .NET 2003 是一个相当稳重的版本，改变很少，但对小处有很多改进。首先 Visual Basic 6.0 升级向导做了很大改进，这给从老版本痛苦升级的人带来了更多一些的希望。其次在 IDE 方面，Visual Basic .NET 2003 修正了许多错误，还让事件处理恢复了6.0的开发体验。语言方面只有两项改进：
1、在 For、For Each 语句中声明循环变量。
2、增加了数学移位运算符 "<<" 和 ">>"。
在这个比较成熟稳定的新版本下，许多 Visual Basic 的爱好和开始重新了解 Visual Basic .NET，社区里面也渐渐热闹起来。但是，有些使用 C# 的开发者坚持认为 Visual Basic .NET 是垃圾，尽管当时的 Visual Basic .NET 拥有比 C# 更多的功能和更好的 IDE (Integrated Development,集成开发环境)。这说明程序员们不了解 Visual Basic .NET 成为它普及的最大障碍。
Visual Basic 2005
2005——完美主义的Visual Basic
为了让 Visual Basic 有最佳的开发体验，Visual Basic 2005 的设计者绞尽了脑汁。这次 Visual Basic 2005 光语言上的改进就足以让 Visual Basic 的开发人员高兴一阵子。
Visual Basic 2005 具有下列新增和加强的功能：
1、泛型。
2、运算符重载。
3、Partial Class。
4、窗体的默认实例。
5、My 伪命名空间。
6、其他语法的多种改进。
现在用 Visual Basic 2005 只要一行代码就可以读写注册表、访问文件、读写串口、获取应用程序信息…… 用 Visual Basic 2005 完全可以称作享受开发。而泛型、运算符重载等功能又可以让 Visual Basic 的开发人员深入.NET Framework的全部功能，开发出最优秀的应用程序。
Visual Basic 2008
2008——功能极强又简单易用
Visual Basic 2008 具有下列新增和加强的功能：
1、Language-integrated query (LINQ)。
2、物件关联式设计工具会协助开发人员建立和编辑，使应用程序连接至资料库的 link to sql 类别。
3、Lambda表达式。
4、XML 数据结构。
Visual Basic 2010
2010——下一代开发平台
Visual Basic 2010 具有下列新增和加强的功能：
1、数组初始值设定项。
2、集合初始值设定项。
3、内联 Lambda 表达式。
4、自动实现属性。
5、泛化。
6、No-PIA 部署。
7、与 Python 的集成。
8、并行计算扩展。
Visual Basic 2012（RC）
Visual Basic 2012 RC 具有下列新增和加强的功能 ：
1、异步功能
2、迭代器
3、调用层次结构
4、调用方信息
5、全局命名空间语句中的关键字
语言特性
VB 的中心思想就是要便于程序员使用，无论是新手或者专家。VB使用了可以简单建立应用程序的 GUI 系统，但是又可以开发相当复杂的程序。VB 的程序是一种基于窗体的可视化组件安排的联合，并且增加代码来指定组件的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内，所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面 VB 程序的性能问题一直被放在了桌面上，但是随着计算机速度的飞速增加，关于性能的争论已经越来越少。
窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件（比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供，但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动，这样就形成了一个动态的程序。举个例子来说：窗体的大小改变事件中加入了可以改变控件位置的代码，在运行时候每当用户更改窗口大小，控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码，程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。
VB 的程序可以包含一个或多个窗体，或者是一个主窗体和多个子窗体，类似于操作系统的样子。有很少功能的对话框窗口（比如没有最大化和最小化按钮的窗体）可以用来提供弹出功能。
VB 的组件既可以拥有用户界面，也可以没有。这样一来服务器端程序就可以处理增加的模块。
VB 使用参数计算的方法来进行垃圾收集，这个方法中包含有大量的对象，提供基本的面向对象支持。因为越来越多组件的出现，程序员可以选用自己需要的扩展库。和有些语言不一样，VB 对大小写不敏感，但是能自动转换关键词到标准的大小写状态，以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的，但是可以关闭这个功能。
VB 使得大量的外界控件有了自己的生存空间。大量的第三方控件针对 VB 提供。VB 也提供了建立、使用和重用这些控件的方法，但是由于语言问题，从一个应用程序创建另外一个并不简单。
特征衡量
在 Visual Basic 中，可通过属性、方法和事件来说明和衡量一个对象的特征。事件（Event）
事件是指发生在某一对象上的事情。事件又可分为鼠标事件和键盘事件。例如，在命令按钮（Command Button）这一对象上可能发生鼠标单击（Click）、鼠标移动（Mouse Move）、鼠标按下（Mouse Down）等鼠标事件，也可能发生键盘按下（Key Down）等键盘事件。总之，事件指明了对象“什么情况下做？”，常用于定义对象发生某种反映的时机和条件。方法（Method）
方法是用来控制对象的功能及操作的内部程序。例如，人具有说话、行走、学习、睡觉等功能，在visual Basic中，对象所能提供的这些功能和操作，就称作“方法”。以窗体为例，它具有显示（show）或隐藏（hide）的方法。总之，方法指明了对象“能做什么？”，常用于定义对象的功能和操作。属性（Property）
属性是指用于描述对象的名称、位置、颜色、字体等特征的一些指标。可以通过属性改变对象的特性。
有些属性可以在设计时通过属性窗口来设置，不用编写任何代码；而有些属性则必须通过编写代码，在运行程序的同时进行设置。可以在运行时读取和设置取值的属性成为读写属性，只能读取的属性成为只读属性。总之属性指明了对象“是什么样的？”，常用于定义对象的外观。
对象与类
对象
（Object）
Visual Basic 具有“面向对象”的特性，Visual Basic 应用种程序的基本单元是对象，用 Visual Basic 编程就是用“对象”组装程序。这种“面向对象”的编程方法与传统的全部用代码编制程序的方法有很大区别，就像用集成电路芯片组装电视机和用三极管，二极管组装电视机的区别一样。显然，“面向对象”的编程方法比传统的编程方法更简单，更方便，并且编写出的程序也更加稳定。因此，“对象”可以被看做 Visual Basic 程序设计的核心。
在 Visual Basic程序设计中，对象中还可以包含头，手，腿，脚等部位，其中的每个部位又可以单独作为作为被研究的对象。在 Visual Basic程序设计中，整个应用程序就是一个对象，应用程序中又包含着窗体（Form），命令按钮（Command），菜单（Menu）等对象。
类
（Class）
在 Visual Basic 中，对象是由类创建的，因此对象可以说是类的具体实例，这就好比是蛋糕和做蛋糕的模具之间的关系。
各种不同的对象分属于各种不同的种类。同一类对象可能具有一些不同的特征（或是说同一类对象不一定具有完全相同的特性）；具有某些相同的特性的对象，不一定是同一类对象，这就好比是人和猴子虽然都有身高、性别等特征，但二者之间还存在着智商、语言等特性差异，这两个对象之间的特性相差很多，根本就不能算是同一类对象。而男人和女人，虽然有着性别、生理等方面的差异，但他们绝大部分特性相同，可以算是同一种类。由此，可以归结为一句话：同一类对象的绝大部分特性相同。
语言缺点
Visual Basic 语言具有不支持继承、无原生支持多线程、异常处理不完善等三项明显缺点，使其有所局限性（此些缺点皆已在 vb .net 获得改进）。
不支持继承
VB 5.0 和 VB 6.0 都是基于对象的编程语言，但是不包含继承特性。VB 中提供了特殊的类的功能，但是还是不能满足程序员的需求。
无原生支持多线程
Visual Basic 对于多线程无原生支持，只能通过Windows API的调用实现。
异常处理不完善
Visual Basic 中内置异常处理，即使未写异常处理代码，一旦用户出错也会弹出一个明确写出出错原因对话框，接着程序终止。
Visual Basic 中可以使用 Err.Raise抛出异常。对系统及用户抛出的异常的处理常用两种模式：一是使用 On Error Resume Next 处理错误；另一种是使用 On Error Goto 将运行引入错误处理代码。但相对 C++ 等语言而言，这样的异常处理破坏了代码的结构。
语言争议
程序员中，对于各种语言孰优孰劣的争论并不少见，Visual Basic 更是成为了一种充满了争议的语言。反方观点一些批评家认为 Visual Basic 是一种给儿童和菜鸟程序员的语言，它自从设计开始就是一种简单的语言。一些C++和Java中的特性在 VB 中并没有出现。在感受开发的方便和快速的同时，一些类似于编译时进行类型和声明检查的功能在默认情况下是关闭的。这样一些程序员一边感叹 VB 的易用性，一边沮丧地看着一些类似于“未定义类型”错误的发生。
一些批评家认为 Visual Basic 的简单特性使得其在未来具有伤害性。很多人自学了 VB，但是并没有学到好的编程习惯。当 VB 进入课堂的时候，学生们不会学到很多基础的程序技术和结构，因为很多技术已经包含在那些对用户可见的组件里面了。不用学习标准的编程习惯，因为 VB 具有可视化的特性，所以导致了一些莫名其妙的代码的产生。而且很多错误和警告的检查默认情况下都是关闭的，程序员很难找到隐藏的错误。有经验的程序员在用 VB 编程的时候都会把这些选项打开。
一些批评家批评微软简单地拷贝了BASIC的思想到 Visual Basic 中。
Visual Basic 开发的程序只能运行在Microsoft Windows中；且运行时还需要 VB 运行库。
Visual Basic 不能很好的综合Windows的基础 API，很多时候要使用低级运算的“小伎俩”来进行编程。而C 语言的低级内存运算比 VB 的要简单得多。正方观点Visual Basic 的最大的优势在于它的易用性，可以让经验丰富的VB程序员或是刚刚懂得皮毛的人都能用自己的方式快速开发程序。而且 VB 的程序可以非常简单的和数据库连接。比如利用控件可以绑定数据库，这样一来用VB写出的程序就可以掌握数据库的所有信息而不用写一行代码。
Visual Basic 开发的程序虽然仅在 Microsoft Windows 中得到原生支持，但 Linux 等平台中存在着一些项目，使得能够使用 Visual Basic 的代码在这些平台下顺利编译。
任何语言开发的程序都需要一定运行时环境的支持。传统 Visual Basic 开发的程序需要 VB运行库的支持；Visual Basic .NET 开发的程序（如C#）需要 .Net Framework 的支持；Java 开发的程序需要 Java虚拟机的支持。
派生语言
微软开发了一系列由 Visual Basic 所派生的语言：
1、Visual Basic for Applications(VBA)：包含在微软的应用程序中（如Microsoft Office），以及类似WordPerfect、Office这样第三方的产品里面。VBA 这样嵌入在各种应用程序中看起来有些矛盾，但是它的功能和 VB 一样强大。
2、VBScript(VBS)：是默认的ASP语言，还可以用在Windows脚本编写和网页编码中。尽管它的语法类似于VB，但是它却是一种完全不同的语言。VBS 不使用 VB运行库运行，而是由Windows脚本主机解释执行。这两种语言之中的不同点影响ASP网站的表现。
3、Visual Basic .NET(vb .net)：当微软准备开发一种新的编程工具的时候，第一决定就是利用 VB 6.0 来进行旧改，或者就是重新组建工程开发新工具。微软后来开发了 VB 的继任者Visual Basic .NET，同时也是.NET平台的一部分。vb .net编程语言是一种真正的面向对象编程语言，和 VB 并不完全兼容。
相关控件
窗体项目。所以Visual Basic中的控件大多和窗体项目有关。
分类
根据应用类型，Visual Basic控件可以分为如下3类：
内置控件
内置控件即Visual Basic工具箱中的控件，里面包含了常见窗体程序所需要的控件
ActiveX控件
ActiveX控件包含不同版本Visual Basic提供的控件和仅在专业版、企业版中提供的控件，并且还包含第三方提供的控件。
ActiveX控件是对Visual Basic内置控件的扩充，开发人员可以根据个人需要进行随意扩充，扩充的ActiveX控件将在工具箱中显示。
在工具箱中添加ActiveX控件的流程如下。
（1）打开一个Visual Basic 6.0项目，一次选择【工程】->【部件】命令，在弹出的“部件”对话框中选择“控件”选项卡，在列表框中选择要添加的ActiveX控件
（2）返回Visual Basic主界面，此时添加的ActiveX控件已被添加到工具箱内
可插入对象
在Visual Basic的工具栏中，可以放置其他的第三方对象，可以像使用控件一样轻松使用。添加后的对象也在工具箱中显示，添加对象的方法和添加ActiveX控件类似，只要依次选择【工程】->【部件】命令，在弹出的“部件”对话框中选择“可插入对象”选项卡，再选择添加的对象即可。
有关第三方对象，可以从受信任的来源下载控件，并通过添加引用来导入。支持这些自定义的Vb的控件有：ComponentOne Studio,Spread，ActiveReports、MultiRow等。
新VB语言
Visual Basic .NET(vb .net) 是新一代的 VB 语言，并不只是 VB 6.0 的简单升级，vb .net 与 VB (泛指 VB 6.0 之前的版本) 之间有非常大的区别。其新特性主要表现在以下几方面：
1．vb .net 完全集成到 Visual Studio 集成开发环境中，在这种集成开发环境与 VB 在若干方面有差异。主要体现在窗体的布局以及菜单等方面都有所不同。
2．vb .net 项目与 VB 不同。它使用基于文件夹的模型，所有项目均放置在项目文件夹层次结构中。
3．vb .net 中使用ado .net来访问数据库，ado .net是.NET Framework的一部分。在 vb .net 中实现数据访问的方法主要有两种：其一是在程序设计阶段，通过创建、配置数据适配器 DataAdapter 和生成数据集 DataSet；其二是在运行中，通过编程方式动态创建配置数据适配器和创建、生成数据集。
4．在 vb .net 中是使用asp .net技术来编写 Web 页面的。在asp .net中使用的也不是脚本语言，而是真正意义的编程语言。凭借asp .net的 Web 应用程序、XML Web Services 等基于 Web 的功能，使得 vb .net 开发 Web 页面与开发 Windows 应用程序很相似，Web 页面代码也显得有条有理了。
5．vb .net 已经成为完全的面向对象的编程语言，并且新增更多语言特性。
Visual Basic .NET有提供转换精灵，协助开发者将 VB 6.0 的程序代码转换为 vb .net 相对应之程序代码。