Visual Basic

出典: フリー百科事典『ウィキペディア(Wikipedia)』
ナビゲーションに移動 検索に移動
Microsoft Visual Basic
開発元 マイクロソフト
初版 1.0 - 1991年(28年前) (1991
最新版 6.0 / 1998年(21年前) (1998
対応OS Microsoft Windows, MS-DOS
サポート状況 開発環境は2008年に終了
実行環境はサポート継続中[1]
種別 統合開発環境
ライセンス Microsoft EULA(プロプライエタリ
公式サイト msdn.microsoft.com/en-us/library/windows/desktop/ms788229.aspx
テンプレートを表示
Visual Basic
パラダイム 手続き型, 制限付きのオブジェクト指向
登場時期 1991年(28年前) (1991
設計者 マイクロソフト
開発者 マイクロソフト
最新リリース 6.0/ 1998年(21年前) (1998
型付け 静的型付け
主な処理系 Microsoft Visual Basic
影響を受けた言語 BASIC, QuickBASIC
影響を与えた言語 Visual Basic .NET, TTSneo
プラットフォーム Microsoft Windows
ライセンス Microsoft EULA
拡張子 .vb
テンプレートを表示

Visual Basic (ヴィジュアル ベーシック)はマイクロソフトが1990年代に開発していたプログラミング言語およびその処理系。通常はVisual BasicまたはVBと呼ぶ。Visual Studioに組み込まれ、さまざまな種類のアプリケーション開発に用いられる。後継となるVisual Basic .NET (VB.NET) に関しては当該項目を参照。1970年代〜1980年代に開発されていた前身のMicrosoft BASICについては当該項目を参照。アプリケーション組み込み用の言語Visual Basic for Applicationsに関しては当該項目を参照。

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

概要[編集]

初期のバージョン[いつ?]BASICから派生したマイクロソフトのQuickBASICを拡張したもので、RADに対応した統合開発環境の名称でもあった。

もともとが初心者用言語のBASICから派生しているという来歴から、VBもプログラミング初心者用・入門者用と言われることが多かった[要出典]が、実際にはさまざまなビジネスシーンで活用されている。

Microsoft Windows用のGUIアプリケーションを開発する場合、もっとも原始的な方法としてC/C++言語でWin32 APIを使い、コードベースですべてのGUI処理を記述していく方法がある。この方法はWindowsのすべての機能にアクセスでき、すべてを制御することができることがメリットだが、その代わりコード記述量は膨大なものとなり、開発効率が悪い(Microsoft Visual C++ではリソースエディタと呼ばれる、GUIの外観デザインを視覚的に設定できるツールも存在するが、これはRADではない)。

VBではフォーム上に、あらかじめ用意された各種のGUIパーツ(コントロール)を配置して、それらのプロパティが変更されたり、マウスでクリックされたりするなどイベントが発生した場合の処理を記述してゆくことでプログラムを作成していくスタイル(Rapid Application Development, RAD)が特徴だったが、現在では多くのGUIアプリケーション開発環境においてこのようなスタイルでのプログラミングが可能であり、VBはその嚆矢であったことになる。グラフィックの描画など、GUIを実現するときに付随する定型的な画面管理はパーツの内部で行なわれるため、プログラマが直接記述する必要性が大幅に低減され、記述が煩雑になりがちなGUIを利用したプログラムを、簡単かつ効率的に作成することができる。

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

言語仕様は、旧来のBASIC言語に比べ、構造化プログラミングの機能が加えられるなど大きく拡張されており、加えてオブジェクト指向に近い概念も取り入れられている。VB4でクラスモジュール機構が導入された。VB5でインターフェイスの実装 (Implements) を利用したポリモーフィズムが導入された[2]。ただしバージョン6.0時点では、C++Javaといった言語と比較して、オブジェクト指向プログラミングのための機能が十分には実装されておらず、特にクラスの継承(実装継承)に相当する機能がなかった。なお、後継のVB.NETでは完全なクラスベースのオブジェクト指向の機能や、Visual C#と遜色のないソリューション・プロジェクト管理機能も実装されている。

バージョン5.0よりも前のバージョンではインタプリタ動作のみであったこともあり、実行速度ではCやC++で記述したネイティブプログラムに比べ10倍から20倍遅いと言われていた[要出典](実際には処理内容に応じて速度比較の結果は異なる)。バージョン5.0と6.0では、Win32 ネイティブコードへのコンパイルがサポートされ、速度面での大幅な改善が図られている。

DirectXのサポート[編集]

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

コード例[編集]

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

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

バージョン[編集]

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 1.0 1991年 オブジェクト指向の基本的な部分を実装。日本では発売されなかった。
Visual Basic for MS-DOS 1.0 1.0 1992年 Windows版との互換性は低いが、DOS版QuickBASICの後継バージョンとして使える。PC-98用の日本語版も発売されていた。
Visual Basic 2.0 2.0 2.0 1992年 OLE, ODBC対応。日本語版は1993年で当初はODBC対応はなし。
Visual Basic 3.0 3.0 3.0 1993年 日本では発売されなかった。
Visual Basic 4.0 4.0 4.0 1995年 32 ビット版と 16 ビット版がある。
Visual Basic 5.0 CCE 5.0 5.0 ActiveXコントロール作成専用。フリー。Visual Basic 5.0のプロトタイプ。
Visual Basic 5.0 5.0 5.0 1997年 Win32 ネイティブコードへのコンパイル機能をサポート。
Visual Basic 6.0 6.0 6.0 1998年 旧来型 Visual Basic (Win32 ネイティブ) の最後のバージョン。

Visual Basic 4.0[編集]

爆発的に普及が始まったWindows 95用のアプリケーション開発環境の一つとしてリリースされた。ボタンやコンボボックスのような標準コントロールに加え、サードパーティーから発売されたコントロールをマウスを使ったGUI操作で配置することでアプリケーション画面を作成することができ、プログラム生産性が高いことが特徴だった。特に、サードパーティ製の高機能なコンポーネントが多く発売され、熟練開発者でなくとも操作性の高いアプリケーションが開発でき、当時のエンドユーザー・コンピューティング(en:End-user computing)に大きな影響を与えた。

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

また、Visual Basicで作成されたアプリケーションを実行するために、ランタイムをあらかじめインストールする必要があった。

Visual Basic 5.0[編集]

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

Visual Basic 6.0[編集]

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

Visual Basic for Applications 7.0[編集]

Microsoft Officeでは、後述するVisual Basic for ApplicationsとしてVisual Basicによるマクロプログラミング環境が採用されている。Office 2007まではバージョン6系列のVisual Basicが採用されていたが、Office 2010では、バージョン番号を7.0としている[6]

主な変更点として、64ビット環境への対応が挙げられる。LongPtr(32ビット環境・64ビット環境双方でポインタと同じ大きさとなる整数型)、LongLong(64ビット整数型、ただし64ビット環境でのみ使用可能)などのデータ型やそれに伴う変換関数の追加などが行なわれている。

Visual Basic .NET[編集]

言語仕様が完全なオブジェクト指向言語ではなかったことや、複雑化するシステム環境に十分に対応できなかったり、開発容易性を確保するために機能的な制限があったため以下の不都合が指摘されてきた。

  • コンポーネントのバージョンの違いからトラブルが起きやすい(DLL地獄)。
  • 基本的にマルチスレッド機能が無い(ActiveX EXEでのみ可能)。
  • 他の言語との情報共有・連携性が乏しい。
  • VBランタイムが別途必要となるなど、アプリケーションのインストールに手間がかかる。

また、Visual Basic 6.0ではWebアプリケーションを開発するための方法(IISによるサーバーサイドVBの実行、VBフォームへのWeb機能組み込み、Internet ExplorerでのVBホスティング)がいくつか用意されていた[7]が、Webの普及とともにWebアプリケーションとしてシステムを構築する事案が増え、Java言語がウェブアプリケーションに柔軟に対応していたのに比較すると、Webアプリケーションの開発が面倒という指摘もあった[要出典]

これらの問題点を解消するために改良が加えられ、Visual Basic .NET が誕生した。しかし言語仕様の大幅な改訂のために、VB6とVB.NETとの互換性はほとんど無くなっている。Visual Basic .NET以降のVBはそれ以前と区別するためにまとめてVisual Basic .NETまたはVB.NETと呼ばれることがある。

サポート期限[編集]

開発環境[編集]

旧来型Visual Basicの最終バージョンであるVisual Basic 6.0は、2004年3月29日にService Pack 6がリリースされたのち、2005年3月31日にメインストリームサポート期間を終え、2008年4月8日に延長サポートの期間を終えた[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実行(開発環境の実行)をサポートしている[9]。ただし、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以降での動作サポートが継続されている[1][10]。64bit OS上ではWOW64により動作する。

アプリケーションの実行環境[編集]

Visual Basicで作成したアプリケーションは、それ単体だけでは実行することができない。 アプリケーション作成に使用したVisual Basicのバージョンに対応するランタイムライブラリインストールが必要である。 作成したアプリケーションのパッケージに同梱して配布することがマイクロソフトにより認められている。

Visual Basic 言語が採用されているその他の環境[編集]

VBA (Visual Basic for Applications)[編集]

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から操作できる。

VBScript (Visual Basic Scripting Edition)[編集]

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では廃止された。

脚注[編集]

[ヘルプ]

関連項目[編集]