Microsoft Visual Basic

Microsoft Visual Basicの最新ニュースをまとめて検索!

Microsoft Visual Basic
開発元 マイクロソフト
最新版 Visual Basic 2008 (2007年12月14日(日本語版))
対応OS Windows XP/Vista
プラットフォーム x86, x64 (WOW64)
種別 統合開発環境
ライセンス Microsoft EULA(プロプライエタリ)※無償版有
公式サイト Visual Basic Web Site
  

Microsoft Visual Basic(マイクロソフト ヴィジュアル ベーシック、VB)はBASIC言語を基に作られたマイクロソフトのスタンドアロン開発用プログラミング言語であり、RADに対応した統合開発環境の名称。

目次

[編集] 概要

マイクロソフトのQuickBASICを拡張したもので、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本体は高度な機能を持っており、かなりの機能を持つソリューション開発も出来る。ただし、インタープリタ動作であるがゆえ、JavaC#など他の仮想マシンベースの高級言語と同様に、実行速度面ではC/C++で記述したネイティブプログラムに比べ10倍から20倍遅いと言われている(実際には処理内容に応じて速度比較の結果は異なる)。ちなみにバージョン5.0以降はWin32 ネイティブコードへのコンパイルがサポートされ、速度面での大幅な改善が図られている。また、習得が容易で敷居の低い開発言語であるがゆえに、非難や侮蔑の対象となることがある。しかしその簡易性・生産性からハイレベルのプログラマにも根強いファンは多い。

なお、実行環境を.NET Frameworkに移したVB.NETでは、最終的にコンパイラが出力するコードはVisual C#等と同じ MSIL 中間コード (Javaのバイトコードに近い) であるため、他の.NET言語と比較して速度面でも遜色ないものとなっている。さらに、MSILは実行時に.NETのJITコンパイラによりネイティブコードに変換されるため、Javaのバイトコードと比較して非常にオーバーヘッドが小さい。

DirectXではDirectX7以降、Visual Basic上からでも利用が可能となっている。Visual Basic6.0ではVB用の(COM)タイプライブラリを使用する事でDX7及び8を、VB7.0(2002)以降ではDX9を操作する為の(.NET)マネージ ライブラリ(Managed DirectX)が提供されている。

[編集] バージョン

.NET Frameworkに対応したバージョン7以降はバージョン6以前と比較して大きな変更が施され、互換性もない。バージョン7.xに限り、Visual Basic .NETと称しているが、それ以降もVB.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のプロトタイプ。
Visual Basic 5.0 5.0 5.0 1997年 Win32 ネイティブコードへのコンパイル機能をサポート。
Visual Basic 6.0 6.0 6.0 1998年 旧来型 Visual Basic (Win32 ネイティブ) の最後のバージョン。
Visual Basic.NET 2002 7.0 2002年 言語仕様の大幅変更(完全なオブジェクト指向)。実行環境に.NET Framework 1.0を採用。
Visual Basic.NET 2003 2003 7.1 2003年 .NET Framework 1.1に対応。
Visual Basic 2005 2005 8.0 2005年 .NET Framework 2.0に対応。
Visual Basic 2008 2008 9.0 2007年 2009年1月時点での最新版。LINQやラムダ式の導入など言語機能を強化。.NET Framework 3.5に対応。

[編集] Visual Basic 4.0

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

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

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

[編集] Visual Basic 5.0

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

[編集] Visual Basic 6.0

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

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

  • コンポーネントのバージョンの違いからトラブルが起きやすい(DLL地獄)。
  • 基本的にマルチスレッド機能が無い(ActiveX EXEでのみ可能)。
  • 他の言語との情報共有が乏しい。
  • アプリケーションのインストールが面倒である。

また、Webの普及とともにWebアプリケーションとしてシステムを構築する事案が増え、Java言語がウェブアプリケーションに柔軟に対応していたのに比較すると、Webアプリケーションの開発が面倒という指摘もあった。

これらの事から改良の手が加えられ、VB.NETが誕生した。しかし言語仕様の大幅な改訂のために、VB6とVB.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と連続性がある言語である。言語仕様が強化され、C# 2.0同様にジェネリックの要素が導入されたほか、パーシャルクラスや演算子のオーバーライドなどがサポートされた。また、開発環境も大きく強化されている。対応する.NETのバージョンは.NET Framework 2.0。(開発環境の拡張機能をインストールすることで、.NET Framework 3.0の利用も可能となっている)

[編集] Visual Basic 2008

同時期にリリースされたC# 3.0に合わせて言語仕様が強化され、構造化照会構文であるLINQや、ラムダ式、匿名型などの要素が追加された。 対応する.NETのバージョンは.NET Framework 3.5。(3.5は3.0および2.0の完全なスーパーセットのため、3.0および2.0のアプリケーション開発も可能となっている)

[編集] 旧来型Visual Basicのサポート

旧来型Visual Basicの最終バージョンであるVisual Basic 6.0は、2004年3月29日にService Pack 6がリリースされるなど、マイクロソフトによるサポートが引き続き行われている。またマイクロソフトはWindows VistaWindows Server 2008Windows 7での動作サポートを表明している[1]。これは、後継のVB.NET以降との互換性がほとんどなく、他開発環境への移行も難しいことが理由である。[2]

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

Visual Basicで作成したアプリケーションは、それ単体だけでは実行することができない。

バージョン6.0以前については、アプリケーション作成に使用したVisual Basicのバージョンに対応するランタイムライブラリインストールが必要になる。例えばVisual Basic 5.0で作成したアプリケーションを実行する場合はVisual Basic 5.0のランタイムライブラリ、Visual Basic 6.0で作成したアプリケーションを実行する場合はVisual Basic 6.0のランタイムライブラリを別途インストールしなければならない。

バージョン7.0(2002)以降で作成したアプリケーションを実行するには、Visual C#やVisual J#と同じ実行基盤である.NET Frameworkが別途必要だが、これは作成したアプリケーションのパッケージに同梱して配布することがマイクロソフトにより認められている。

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

[編集] VBA(Visual Basic for Applications)

詳細は「Visual Basic for Applications」を参照

個々のアプリケーション用のマクロ環境として実装されるVisual Basic。言語仕様としては、本家のVisual Basicで.NET以降がリリースされたのちも、Visual Basic 6.0のものが実装されている。ExcelAccessWordなどMicrosoft Officeの多くのアプリケーションで実装されているほか、独自に開発したアプリケーションにVBAを搭載することも可能で、サードパーティ製のアプリケーションにVBAが搭載される場合もある。本家Visual Basicとの大きな違いは、搭載アプリケーション内でしか実行できない点にある。

VBAでは、各アプリケーションをオブジェクトとして操作できるようになっており、Excelを例にとると、「ファイル全体」を表すBookクラス、「スプレッドシートのセル」を表すRangeクラスなどがVBAから操作できる。

[編集] VBScript(Visual Basic Scripting Edition)

詳細は「VBScript」を参照

[編集] 関連項目

[編集] 脚注

  1. ^ Windows Vista®、 Windows Server 2008®、および Windows 7 における Visual Basic 6.0 のサポートについて MSDN Visual Basicデベロッパーセンター
  2. ^ よく寄せられる質問:Visual Studio と Windows Vista Microsoft Visual Studio デベロッパーセンター

[編集] 外部リンク

最終更新 2009年10月11日 (日) 13:50 (日時は個人設定で未設定ならばUTC)。
【Microsoft Visual Basic】変更履歴

ご利用上の注意