Visual Basic: マイクロソフトが1990年代に開発していたプログラミング言語およびその処理系

Visual Basic (ヴィジュアル ベーシック)はマイクロソフトが1990年代に開発していたプログラミング言語およびその処理系。通常はVisual Basicまたは略してVBと呼ぶ。単体製品パッケージのほか、Visual Studioに組み込まれたパッケージもあり、さまざまな種類のアプリケーション開発に用いられていた。

Microsoft Visual Basic
開発元 マイクロソフト
初版 1.0 - 1991年 (33年前) (1991)
最新版
6.0 / 1998年 (26年前) (1998)
対応OS Microsoft Windows, MS-DOS
サポート状況 開発環境は2008年に終了
実行環境はサポート継続中
種別 統合開発環境
ライセンス Microsoft EULA(プロプライエタリ
公式サイト https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6.0-documentation
テンプレートを表示
Visual Basic
パラダイム 手続き型, 制限付きのオブジェクト指向
登場時期 1991年 (33年前) (1991)
設計者 マイクロソフト
開発者 マイクロソフト
最新リリース 6.0/ 1998年 (26年前) (1998)
型付け 静的型付け
主な処理系 Microsoft Visual Basic
影響を受けた言語 BASIC, QuickBASIC
影響を与えた言語 VBScript, Visual Basic .NET, TTSneo
プラットフォーム Microsoft Windows, MS-DOS
ライセンス Microsoft EULA
拡張子 .vb
テンプレートを表示

後継となるVisual Basic .NET (VB.NET) に関しては当該項目を参照。アプリケーション組み込み用の言語Visual Basic for Applications (VBA) に関しては当該項目を参照。1970年代〜1980年代に開発されていた前身のMicrosoft BASICについても当該項目を参照。

なお、マイクロソフトのドキュメントでは、バージョン2005以降のVisual Basic .NETをVisual Basicと呼んでいるが、本記事では.NET非対応のVisual Basicのみを取り扱う。

概要

Visual Basicは、同じくマイクロソフトによって開発されていたQuickBASICを拡張・発展させたものである。

汎用プログラミング言語としてのVB

汎用プログラミング言語としてのVBは、QuickBASIC同様、構造化プログラミングのパラダイムを取り入れたBASICである。1970年代から1980年代にかけて広く使われていた、構造化以前のBASIC(行番号GOTO文を用いるスタイル)とは大きく異なっている。加えてオブジェクト指向に近い概念も取り入れられている。

VB4でクラスモジュール機構が導入された。VB5でインターフェイスの実装 (Implements) を利用したポリモーフィズムが導入された。ただしバージョン6.0時点では、C++Javaといった言語と比較して、オブジェクト指向プログラミングのための機能が十分には搭載されておらず、特にクラスの継承(実装継承)に相当する機能がなかった。なお、後継のVB.NETでは完全なクラスベースのオブジェクト指向の機能が搭載された。

統合開発環境としてのVB

統合開発環境 (IDE) としてのVBは、主にグラフィカルユーザーインターフェイス (Graphical User Interface, GUI) を持つアプリケーションソフトウェアを効率的に開発するための視覚的プログラミング環境である。基本的にコンソールアプリケーションの開発は想定されていない。

VBでは、まずGUIデザイナー画面において視覚的表示されるフォームウィンドウ)上に、ボタンテキストボックスなど、「コントロール」と呼ばれるあらかじめ用意された各種のGUI部品(ウィジェット)を、マウスによるドラッグ&ドロップなどを用いて配置する。このデザイナー上で確認できる表示結果は、GUIアプリケーションが実際に起動されたときの結果に近いものとなる(WYSIWYG)。次に、それらのGUI部品において、マウスでクリックされたり、テキスト内容などのプロパティが変更されたり、といった「イベント」が発生した場合に実行させたいことをコードで記述していくことでプログラムを作成していく。このスタイルはRapid Application Development (RAD) とも呼ばれる。

VBの特徴は、RADスタイルのプログラミングである、とリリース当時のMSのリーフレットなどではその特徴が解説された。[要出典]

グラフィックスの描画など、GUIを実現するときに付随する定型的な画面管理は各部品の内部で行なわれるため、プログラマが直接記述する必要性が大幅に低減され、記述が煩雑になりがちなGUIを利用したプログラムを、簡単かつ効率的に作成することができる。このプログラミングスタイルは、後発のDelphiWindows Formsなどでも採用されており、VBはRADの先駆けのひとつであったともいえる。

バージョン1.0ではWindows版の後にMS-DOS版が発売されており、キャラクタベースにもかかわらずコントロールを配置してGUIを構築することができた。ただしキャラクタベースであるため、フォームを使用した場合、グラフィックスの描画は不可能である。

なおMicrosoft Windows用のGUIアプリケーションを開発する場合、もっとも原始的な方法としてC/C++言語でWindows APIを使い、コードベースでメッセージループやウィンドウプロシージャといったすべてのGUI処理を記述していく方法がある。この方法はWindowsのすべての機能にアクセスでき、すべてを制御することができることがメリットだが、その代わりコード記述量は膨大なものとなり、開発効率が悪い。このような作業を隠蔽・省略して、直感的かつ迅速にアプリケーションを開発できるようにしてくれるのが、VBのようなRAD環境である。Microsoft Visual C++ではリソースエディタと呼ばれる、GUIの外観デザインを視覚的に設定できるツールも存在するが、これはRADではない。MFCのフレームワークを利用することで定型的なコードの記述量は減るものの、VBほど直感的にGUIアプリケーションを開発できるようになるわけではない。C/C++は言語仕様や概念自体が難解でVBよりも習得しづらく、エンドユーザー・コンピューティングの観点からもハードルが高い。

コード例

Private Sub Command1_Click()     MsgBox "Hello, World" End Sub 

上記はコマンドボタン"Command1"に関連付けられているイベントハンドラーの例である。対応するコマンドボタンをクリックすると、メッセージボックスに「Hello, World」と表示される。

DirectXのサポート

マルチメディアコンポーネントであるMicrosoft DirectXに関しては、一部のバージョンのみVisual Basic上からでも利用が可能となっている。Visual Basic 6.0ではVB用のCOMタイプ ライブラリを使用することでDirectX 7およびDirectX 8を利用できる。 しかし、これらのVB向けDirectXインターフェイスは、Windows Vista以降ではサポートされていない。

歴史

Visual Basic: 概要, 歴史, 派生言語 
Visual Basicのユーザーインターフェイスのドラッグ&ドロップデザインを作成したアラン・クーパー

Visual Basic 1.0がリリースされたのは1991年である。ユーザーインターフェイスを作成するためのドラッグ・アンド・ドロップのデザインは、アラン・クーパーが開発したプロトタイプのフォームジェネレータTripodに由来する。マイクロソフトはクーパーと契約し、TripodをWindows 3.0用のプログラム可能なフォームシステムにするために、Rubyというコード名で開発した(後のスクリプト言語Rubyとは関係ない)。Tripodにはプログラミング言語は含まれていなかった。マイクロソフトはRubyと同社のQuickBASICを組み合わせてVisual Basicを作成することにした。インタフェースジェネレータRubyはVisual Basicの視覚的な部分を提供した。Rubyはまた、追加のコントロール(当時は「ギズモ」と呼ばれていた)を含むダイナミックリンクライブラリ(DLL)をロードする機能も提供し、これは後にVBX英語版インターフェイスとなった。アラン・クーパーは「Visual Basicの父」と呼ばれている。

Visual Basicには、大きく分けて2種類ある。1つはバージョン1.0から6.0までの旧来版、もう1つはバージョン 7.0 (2002) 以降の.NET Framework対応版である。.NET Frameworkに対応したバージョン7.0以降はバージョン6.0以前と比較して大きな変更が施され、互換性もない。

バージョンの履歴
製品名 バージョン ランタイム名 リリース 備考
Visual Basic 1.0 1.0 VBRUN100.DLL 1991年 オブジェクト指向の基本的な部分を実装。日本では発売されなかった。
Visual Basic for MS-DOS 1.0 - 1992年 Windows版との互換性は低いが、DOS版QuickBASICの後継バージョンとして使える。

NEC PC-98用および富士通FMR用の日本語版も販売されていた。

Visual Basic 2.0 2.0 VBRUN200.DLL (英語版)
VBRJP200.DLL (日本語版)
1992年 OLE, ODBC対応。日本語版は1993年で当初はODBC対応はなし。
Visual Basic 3.0 3.0 VBRUN300.DLL 1993年 日本では発売されなかった。
Visual Basic 4.0 4.0 VBRUN400.DLL 1995年 32 ビット版と 16 ビット版がある。
Visual Basic 5.0 CCE 5.0 - 1997年 ActiveXコントロール作成専用。フリー。Visual Basic 5.0のプロトタイプ。
Visual Basic 5.0 5.0 MSVBVM50.DLL 1997年 Win32 ネイティブコードへのコンパイル機能をサポート。
Visual Basic 6.0 6.0 MSVBVM60.DLL 1998年 旧来型 Visual Basic (Win32 ネイティブ) の最後のバージョン。

Visual Basic 4.0

32 ビット版と 16 ビット版の Windows プログラムを開発できる最初のバージョンとなった。爆発的に普及が始まったWindows 95用のアプリケーション開発環境の一つとしてリリースされた。ボタンやコンボボックスのような標準コントロールに加え、サードパーティーから発売されたコントロールをマウスを使ったGUI操作で配置することでアプリケーション画面を作成することができ、プログラム生産性が高いことが特徴だった。特に、サードパーティ製の高機能なコンポーネントが多く発売され、熟練開発者でなくとも操作性の高いアプリケーションが開発でき、当時のエンドユーザー・コンピューティングに大きな影響を与えた。VB4 の言語仕様が Office 95 の VBA に切り出され、Word VBA、Excel VBA、Access VBA の仕様とも融合した。

技術面で見ると、前のバージョンまではVBXコントロールを使っていたが、このバージョンからVisual C++などを用いてCOMのコントロール(OLEコントロール、OCX、後にActiveXコントロールと呼ばれる)を開発し、これらの部品群の組み立てをVisual Basicで行うことが容易にできた。特にExcelなどのアプリケーションをOLEを通じて制御することができるため、帳票を扱うような業務アプリケーション開発の分野で使われることも多かった。

Visual Basic 5.0

Win32 ネイティブコードへのコンパイル機能がサポートされるようになり、実行速度が大幅に向上した。 開発環境内でのインタプリタ実行も引き続きサポート。

Visual Basic 6.0

ActiveXに完全に対応し、ActiveXオブジェクトを使用することはもちろん作成することも可能。そのため、ActiveXコンポーネントとして公開されていたDAOADO、oo4oなどを使用して、SQL ServerOracle DBを制御することができ、多くのビジネスシーンで使用された。また、バージョン1.0からの経験も蓄積されていたためVisual Basic 6.0を扱えるプログラマ・情報量ともに豊富だった。

Webアプリケーションを開発するための方法(IISによるサーバーサイドVBの実行、VBフォームへのWeb機能組み込み、Internet ExplorerでのVBホスティング)がいくつか用意されていた。

派生言語

Visual Basic for Applications (VBA)

Microsoft Officeのアプリケーション用のマクロ環境として実装されているVisual Basic。反復操作を自動化するだけでなく、Windowsのフォームやボタンなどのコントロールをドキュメント内に配置して、ドキュメント編集のためのGUIを構築することも可能となっている。言語仕様としては、本家のVisual Basicで.NET以降がリリースされたのちも、ドキュメントの互換性を保つ目的で、Visual Basic 6.0ベースのものが実装されている。ExcelAccessWordなどのアプリケーションで実装されているほか、独自に開発したアプリケーションにVBAを搭載することも可能で、サードパーティ製のアプリケーションにVBAが搭載される場合もある。本家Visual Basicとの大きな違いは、搭載アプリケーション内でしか実行できない点にある。

VBAを用いることで、対応するアプリケーション内の各要素をクラスオブジェクトとして操作できる。Excelを例にとると、「Excelアプリケーション」を表すApplicationオブジェクト、「Excelブック」を表すWorkbookオブジェクト、「スプレッドシート中のセルまたはセル範囲」を表すRangeオブジェクトなどがVBAから操作できる。

Office 2007まではバージョン6系列のVisual Basicが採用されていたが、Office 2010では、バージョン番号を7.0としている。主な変更点として、64ビット環境への対応が挙げられる。LongPtr(32ビット環境・64ビット環境双方でポインタと同じ大きさとなる整数型)、LongLong(64ビット整数型、ただし64ビット環境でのみ使用可能)などのデータ型やそれに伴う変換関数の追加などが行なわれている。

VBScript (Visual Basic Scripting Edition)

Active Server Pages (ASP) の既定の言語であり、Windowsスクリプティングやクライアント側のウェブページスクリプティングでも利用される。文法はVBに似ているがVBランタイムではなくvbscript.dllで実行される別の言語である。ASPおよびVBScriptは、.NET Frameworkを使ったASP.NETとはまた別物である。

Visual Basic .NET

Visual Basic 6.0の後継言語であり、.NETプラットフォームの一部である。Visual Basic .NETは.NET Frameworkを使ってコンパイルされ実行される。同時期にリリースされたC#の姉妹言語であり、Visual Basic 6.0と後方互換性はない。自動移行ツールも用意されているが手動での手直しも必要となる。IDEとしてはVisual C#と遜色のないソリューション・プロジェクト管理機能も実装されている。

のちにMono.NET Core環境にも移植され、クロスプラットフォームとなった。

Visual Studio マクロ

Microsoft Visual Studioでは、繰り返し発生する操作を自動化するために、Visual Basic言語によるIDEマクロ環境が用意されている。前述のVBAとは異なり、Visual Studioのバージョンに応じたVisual Basicが使用できるようになっており、Visual Studio .NET以降はVB.NETを使って.NET Frameworkを利用できるようになっている。なお、各マクロプロジェクトは、テキストファイルのソースコードではなく、.vsmacrosファイルにメタデータとしてバイナリ形式で保存されるようになっているが、各モジュールをVBのソースファイル (.vb) としてエクスポートあるいはインポートすることもできる。公式のマクロ機能はVisual Studio 2010までの提供となり、2012では廃止された。

パフォーマンス等の課題

Visual Basic 5 以前のバージョンでは、Pコードへのコンパイルのみをサポートしていた。Pコードは言語ランタイムによって解釈される。Pコードのメリットは、ポータビリティと小さなバイナリサイズであるが、実行時に解釈するレイヤーが追加になるため実行速度が遅くなる。Visual Basicアプリケーションの実行にはMicrosoft Visual Basicランタイム (MSVBVMxx.DLL) が必要であり、xx は50、60などのバージョン番号が入る。MSVBVM60.dllはWindows 98からWindows 7までのバージョンのWindowsのすべてのエディション (一部の Windows 7のエディションを除く) で標準コンポーネントとしてインストールされていた。Windows 95マシンはプログラムが必要としているDLLをインストーラで配布する必要があった。作成したアプリケーションのパッケージにランタイムを同梱して配布することがマイクロソフトにより認められている。Visual Basic 5 と 6 はコードを Win32 ネイティブとPコードのどちらにでもコンパイルできたが、いずれにせよビルトインの関数やフォームの利用にランタイムを必要とした。

VB.NET 以前のVisual Basicでは以下の不都合が指摘されていた。

サポート期限

開発環境

旧来型Visual Basicの最終バージョンであるVisual Basic 6.0は、2004年3月29日にService Pack 6がリリースされたのち、2005年3月31日にメインストリームサポート期間を終え、2008年4月8日に延長サポートの期間を終えた。したがって現在は開発環境のサポートを打ち切られている状態にある。

Visual Studio .NET 2003以前のIDE製品は、Windows VistaおよびWindows Server 2008上での実行サポートが打ち切られたが、Visual Basicに関しては後継のVB.NET以降との互換性がほとんどなく、他開発環境への移行も難しいことから、マイクロソフトは例外的に32bit版のWindows VistaおよびWindows Server 2008でのVisual Basic 6.0のIDE実行(開発環境の実行)をサポートしている。ただし、64bit環境でのIDE実行はサポートされない。また、Windows 7およびWindows Server 2008 R2以降では開発環境の実行サポートも打ち切られている(ただしマイクロソフトによると、Windows 7やWindows 8においてVisual Basic 6.0 IDEをテストし、アプリケーションの互換性に深刻な不具合がないかどうかを確認して、必要に応じて不具合の軽減措置を取ったとされている)。

実行環境

Visual Basic 6.0で作成されたアプリケーションや、OSに同梱されるVB6ランタイムについては、Windows 7以降およびWindows Server 2008以降での動作サポートが継続されている。64bit OS上ではWOW64により動作する。

脚注

注釈

出典

カテゴリ / テンプレート

関連項目

Tags:

Visual Basic 概要Visual Basic 歴史Visual Basic 派生言語Visual Basic パフォーマンス等の課題Visual Basic サポート期限Visual Basic 脚注Visual Basic 関連項目Visual BasicVisual Studioマイクロソフト

🔥 Trending searches on Wiki 日本語:

マドラス (企業)西城秀樹津田健次郎菊地亜美尾藤イサオ山田孝之メイドインアビス渡辺菜生子ADOR王様ランキング豆柴の大群中条あやみLAPONEエンタテインメント秋元司神戸連続児童殺傷事件大王製紙冴羽獠日本航空123便墜落事故AFCチャンピオンズリーグ坂本龍一杉咲花シティーハンター科捜研の女中村祐美子崇禎帝高尾奏音ナタリー・ポートマンオリビエ・ペリエ4月25日阿部慎之助愛知大学SixTONES犬山紙子イップス (テレビドラマ)中華人民共和国不適切にもほどがある!ILLITBE:FIRST三吉彩花シンガポール釘宮理恵いなば食品森口博子フェラチオ徳弘正也ゴールドシップ田中幹也ジョジョの奇妙な冒険つつじが岡公園3年B組金八先生菅野智之飯山陽家なき子 (1994年のテレビドラマ)未来への10カウント矢本悠馬八咫烏シリーズ川内博史ロバート・フランシス (俳優)柳裕也小池百合子高野洸仲里依紗裸の大将放浪記Tuki.太宰治加藤鷹王恭廠大爆発井俣憲治戸田恵梨香岸田文雄小野伸二四十八手 (アダルト用語)訃報 2024年4月一条天皇大津亮介吉高由里子2024年連続テレビ小説🡆 More