Microsoft Visual Basic
出典: フリー百科事典『ウィキペディア(Wikipedia)』
| Microsoft Visual Basic | |
|---|---|
| 開発元 | マイクロソフト |
| 最新版 | Visual Basic 2008 / 2007年12月14日(日本語版) |
| 対応OS | Windows XP/Server 2003/Vista |
| プラットフォーム | x86, x64 (WOW64) |
| 種別 | 統合開発環境 |
| ライセンス | Microsoft EULA(プロプライエタリ)※無償版有 |
| 公式サイト | Visual Basic Web Site |
Microsoft Visual Basic(マイクロソフト ヴィジュアル ベーシック、VB)はBASIC言語を基に作られたマイクロソフトのスタンドアロン開発用プログラミング言語であり、RADに対応した統合開発環境の名称。
目次 |
[編集] 概要
マイクロソフトのQuick BASICを拡張したもので、Microsoft Windows (Windows) 用のアプリケーション開発、および Web用のアプリケーション開発、モバイル向けのアプリケーション開発などを行うことができる。Visual Basicを略してVB(ブイビー)と呼ぶことも多い。当初からWindows向けに開発されたため、同社製品との親和性は非常に高い。バージョン1.0ではWindows版の後にMS-DOS版が発売されており、キャラクタベースにもかかわらずコントロールを配置してGUIを構築することができた。ただしキャラクタベースであるため、グラフィックスの描画はフォームを使用した場合、不可能である。
「BASIC」の由来から、プログラミング初心者用といわれることが多く、また当初のバージョンでは機能も限定的であったが、バージョンを重ねるごとに拡張され現在ではさまざまなビジネスシーンで活用されている。
フォーム上にあらかじめ用意された各種のGUIパーツ(コントロール)を配置して、それらのプロパティが変更されたり、マウスでクリックされたりするなどイベントが発生した場合の処理を記述(コーディング)してゆくことで、プログラムを作成していくスタンスが特徴。グラフィックの描画などGUIを実現するときに付随する定型的な画面管理はパーツの内部で行なわれ、ユーザがコーディングする必要がないため複雑なGUIを利用したプログラムを簡単に作成することができる。
言語仕様は純粋なBASIC言語に比べかなり拡張されており、構造化プログラミングやオブジェクト指向に近い概念が取り入れられている。バージョン6.0以前ではオブジェクト指向的な要素は完全には実装されておらず、特に継承にあたる機能は皆無であったが、バージョン7.0(2002)以降では完全にオブジェクト指向言語としての機能を実装している。
初心者用と言われていた初期のバージョンと比較すると、バージョン6.0以降のVisual Basic本体は高度な機能を持っており、かなりの機能を持つソリューション開発も出来る。ただし、Java、C#など他の高級言語と同様に、実行速度面はC/C++で記述したネイティブプログラムに比べ10倍から20倍遅いと言われている。ただ、実際には処理の種類に応じて速度比較の結果は異なるので10倍から20倍という値には注意が必要である。また、敷居の低い開発言語であるため、非難や侮蔑の対象となることがある。しかし簡易性からハイレベルのプログラマにも根強いファンは多い。
バージョン7.0(2002)以降で作成したアプリケーションを実行するには、Visual C#やVisual J#と同じ実行基盤である.NET Frameworkが別途必要であるが、これは作成したアプリケーションのパッケージに同梱して配布することがマイクロソフトにより認められている。なお、バージョン6.0以前は.NET Frameworkではなく、独自のランタイムライブラリのインストールが必要であった。
DirectXではDirectX7以降、Visual Basic上からでも利用が可能となっている。Visual Basic6.0ではVB用の(COM)タイプライブラリを使用する事でDX7及び8を、VB7.0(2002)以降ではDX9を操作する為の(.NET)マネージドコードライブラリが提供されている。
[編集] バージョンの歴史
.NET Frameworkに対応したバージョン7以降はバージョン6以前と比較して大きな変更が施され、互換性もない。バージョン7.xに限り、Visual Basic .NETという。
| 製品名 | バージョン | 内部バージョン | リリース | 備考 |
|---|---|---|---|---|
| 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年 | 32bit版と16bit版がある。 |
| Visual Basic 5.0 CCE | 5.0 | 5.0 | ActiveXコントロール作成専用。フリー。 | |
| Visual Basic 5.0 | 5.0 | 5.0 | 1997年 | |
| Visual Basic 6.0 | 6.0 | 6.0 | 1998年 | 旧来型Visual Basic の最後のバージョン。 |
| Visual Basic.NET | 2002 | 7.0 | 2002年 | 言語仕様の大幅変更(完全なオブジェクト指向)。.NET Frameworkを採用。 |
| Visual Basic.NET 2003 | 2003 | 7.1 | 2003年 | |
| Visual Basic 2005 | 2005 | 8.0 | 2005年 | |
| Visual Basic 2008 | 2008 | 9.0 | 2007年 | 2007年12月時点での最新版。LINQやラムダ式の導入など言語機能を強化。 |
[編集] Visual Basic 言語が採用されているその他の環境
[編集] VBA (Visual Basic for Applications)
詳細はVisual Basic for Applicationsを参照
個々のアプリケーション用のマクロ環境として実装されるVisual Basic。 言語仕様としては、本家のVisual Basicで.NET以降がリリースされたのちも、Visual Basic 6.0のものが実装されている。 ExcelやAccess、WordなどMicrosoft Officeの多くのアプリケーションで実装されているほか、独自に開発したアプリケーションにVBAを搭載することも可能で、サードパーティ製のアプリケーションにVBAが搭載される場合もある。 本家Visual Basicとの大きな違いは、搭載アプリケーション内でしか実行できない点にある。
VBAでは、各アプリケーションをオブジェクトとして操作できるようになっており、Excelを例にとると、ファイル全体をさすBookクラス、スプレッドシートのセルをあらわすRangeクラス等が、VBAから操作できる。
[編集] VBS (Visual Basic Script)
詳細はVBScriptを参照
[編集] ASP (Active Server Pages)
詳細はActive Server Pagesを参照
[編集] Visual Basic の歴史
[編集] Visual Basic 4.0
爆発的に普及が始まったWindows95用のアプリケーション開発環境の一つとしてリリースされた。ボタンやコンボボックスのような標準コントロールに加え、サードパーティから発売されたコントロールをマウスを使ったGUI操作で配置することでアプリケーション画面を作成することができ、プログラム生産性が高いことが特徴であった。特に、サードパーティ製の高機能なコンポーネントが多く発売され、熟練開発者でなくとも操作性の高いアプリケーションが開発でき、当時のエンドユーザ・コンピューティングに大きな影響を与えた。
技術面で見ると、Visual C++などを用いてCOMのコントロール(OLEコントロール、OCX、後にActiveXコントロールと呼ばれる)を開発し、これらの部品群の組み立てをVisual Basicで行うことが容易にできた。特にExcelなどのアプリケーションをOLEを通じて制御することができるため、帳票を扱うような業務アプリケーション開発の分野で使われることも多かった。
また、Visual Basicで作成されたアプリケーションを実行するために、ランタイムをあらかじめインストールすることが必要であった。
[編集] Visual Basic 6.0
ActiveXに完全に対応し、ActiveXオブジェクトを使用することはもちろん作成することも可能であった。 そのため、ActiveXコンポーネントとして公開されていたDAOやADO、oo4oなどを使用して、SQL ServerやOracleを制御することができ、多くのビジネスシーンで使用された。 また、バージョン1.0からの経験も蓄積されていたためVisual Basic 6.0を扱えるプログラマ・情報量ともに豊富だった。
ただし、言語仕様が完全なオブジェクト指向言語ではなかったことや、複雑化するシステム環境に十分に対応できなかったり、開発容易性を確保するために機能的な制限があったため以下の不都合が指摘されてきた。
- コンポーネントのバージョンの違いからトラブルが起きやすい。(DLL地獄)
- 基本的にマルチスレッド機能が無い(ActiveX EXEでのみ可能)
- 他の言語との情報共有が乏しい
- アプリケーションのインストールが面倒である
また、Webの普及とともにWebアプリケーションとしてシステムを構築する事案が増え、Java言語がWebアプリケーションに柔軟に対応していたのに比較すると、 Webアプリケーションの開発が面倒という指摘もあった。
これらの事から改良の手が加えられ、VB.NETが誕生した。 しかし言語仕様の大幅な改訂のために、VB6とVB.NETとの互換性はほとんど無くなっている。 (VB6.0がオブジェクト指向型言語ではないため、オブジェクト指向型プログラミングは不可能と思われがちだが、実際は不可能ではない)
[編集] Visual Basic.NET
[編集] Visual Basic.NET
詳細はMicrosoft Visual Basic .NETを参照
2002年には、このVisual Basicを基に強いオブジェクト指向の概念を取り入れた新しい言語Visual Basic.NETが開発された。VB.NETはVB6の後継言語とされ、マイクロソフト社の.NET Frameworkという新しい技術基盤に対応している。
対応する.NETのバージョンは.NET Framework 1.0
VB.NETは新たにサーバ用のプログラム、Web用のプログラムが開発出来るなどのネットワーク開発機能が追加された。VB6の後継といっても、豊富なデバッグ機能が追加されたり、中間コード形式になるといった言語設計思想そのものが変わるなど、様々な点で大幅な機能の追加および削除が行われた。
[編集] Visual Basic.NET 2003
対応する.NETのバージョンは.NET Framework 1.1
[編集] Visual Basic 2005
名称からは「.NET」という名前がなくなったが、上記のVB.NETと連続性がある言語である。 言語仕様が強化され、ジェネリックの要素が導入されたほか、パーシャルクラスや演算子のオーバーライドなどがサポートされた。 また、開発環境も大きく強化されている。 対応する.NETのバージョンは.NET Framework 2.0
[編集] Visual Basic 2008
言語仕様が強化され、構造化照会構文であるLINQや、ラムダ式、匿名型などの要素が追加された。 対応する.NETのバージョンは.NET Framework 3.5

