読み方:びじゅあるべーしっく
米国マイクロソフト社が開発したプログラミング言語。グラフィックソフトのようなユーザーインターフェースにより、アプリケーションソフトの開発を容易にする工夫がなされている。VB。
読み方:ぶいびー
《Visual Basic》⇒ビジュアルベーシック
Visual Basicとは、Microsoftによって提供されている、主にWindows用のアプリケーションを開発するためのプログラミング言語、ならびに統合開発環境(IDE)の名称である。
Visual Basicはプログラム言語のBASICをベースとしており、Windowsとの親和性を高く保っていることと、全般的にコーディングをしなくても比較的容易にプログラミングできる点を大きな特徴としている。Visual Basicではボタンなどのパーツを配置していくことでGUIの画面やイベント処理などが設計可能となっている。これは後にRAD(Rapid Application Development)と呼ばれ、多くの開発環境で採用されている。
WordやExcelといったMicrosoftの主要なアプリケーションソフトでは、Visual Basicの簡易版といえるマクロ言語のVBA(Visual Basic for Applications)が採用されている。また、Visual Basicをベースとして本格的なオブジェクト指向の概念が導入されたプログラミング言語であるVB.NET(Visual Basic .NET)も提供されている。
| プログラミング言語の種類: | Swift 手続き型言語 VBA Visual Basic Visual C++ Visual Studio Visual C# .NET |
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2026/02/22 00:22 UTC 版)
|
|
この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。 (2015年7月)
|
| 開発元 | マイクロソフト |
|---|---|
| 初版 | 1.0 - 1991年 |
| 最新版 |
6.0 / 1998年
|
| 対応OS | Microsoft Windows, MS-DOS |
| サポート状況 | 開発環境は2008年に終了 実行環境はサポート継続中[1] |
| 種別 | 統合開発環境 |
| ライセンス | Microsoft EULA(プロプライエタリ) |
| 公式サイト | https://learn.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6.0-documentation |
| パラダイム | 手続き型, 制限付きのオブジェクト指向 |
|---|---|
| 登場時期 | 1991年 |
| 設計者 | マイクロソフト |
| 開発者 | マイクロソフト |
| 最新リリース | 6.0/ 1998年 |
| 型付け | 静的型付け |
| 主な処理系 | Microsoft Visual Basic |
| 影響を受けた言語 | BASIC, QuickBASIC |
| 影響を与えた言語 | VBScript, Visual Basic .NET, TTSneo |
| プラットフォーム | Microsoft Windows, MS-DOS |
| ライセンス | Microsoft EULA |
| 拡張子 | .vb |
Visual Basic (ヴィジュアル ベーシック、略称 VB)は、マイクロソフトが1991年に公開したプログラミング言語および統合開発環境である。GUI部品を画面上に配置しながらWindows向けアプリケーションを容易に開発できる環境を提供し、1990年代における Windowsソフトウェア開発の普及に大きな役割を果たした。
従来系統の開発は Visual Basic 6.0 を最後に終了し、その後は .NET 環境向けの後継言語である Visual Basic .NET(VB.NET)へ移行している。本記事では .NET 以前の Visual Basic を対象とする。
Visual Basicは、同じくマイクロソフトによって開発されていたQuickBASICを拡張・発展させたものである。
汎用プログラミング言語としてのVBは、QuickBASIC同様、構造化プログラミングのパラダイムを取り入れたBASICである。1970年代から1980年代にかけて広く使われていた、構造化以前のBASIC(行番号やGOTO文を用いるスタイル)とは大きく異なっている。加えてオブジェクト指向に近い概念も取り入れられている。
VB4でクラスモジュール機構が導入された。VB5でインターフェイスの実装(Implements)を利用したポリモーフィズムが導入された[2]。ただしバージョン6.0時点では、C++やJavaといった言語と比較して、オブジェクト指向プログラミングのための機能が十分には搭載されておらず、特にクラスの継承(実装継承)に相当する機能がなかった。なお、後継のVB.NETでは完全なクラスベースのオブジェクト指向の機能が搭載された。
統合開発環境(IDE)としてのVBは、主にグラフィカルユーザーインターフェイス(Graphical User Interface、GUI)を持つアプリケーションソフトウェアを効率的に開発するための視覚的プログラミング環境である。基本的にコンソールアプリケーションの開発は想定されていない[注釈 1]。
VBでは、まずGUIデザイナー画面において視覚的表示されるフォーム(ウィンドウ)上に、ボタンやテキストボックスなど、「コントロール」と呼ばれるあらかじめ用意された各種のGUI部品(ウィジェット)を、マウスによるドラッグ&ドロップなどを用いて配置する。このデザイナー上で確認できる表示結果は、GUIアプリケーションが実際に起動されたときの結果に近いものとなる(WYSIWYG)。次に、それらのGUI部品において、マウスでクリックされたり、テキスト内容などのプロパティが変更されたり、といった「イベント」が発生した場合に実行させたいことをコードで記述していくことでプログラムを作成していく。このスタイルはRapid Application Development(RAD)とも呼ばれる。
VBの特徴は、RADスタイルのプログラミングである、とリリース当時のMSのリーフレットなどではその特徴が解説された。[要出典]
グラフィックスの描画など、GUIを実現するときに付随する定型的な画面管理は各部品の内部で行なわれるため、プログラマが直接記述する必要性が大幅に低減され、記述が煩雑になりがちなGUIを利用したプログラムを、簡単かつ効率的に作成することができる。このプログラミングスタイルは、後発のDelphiやWindows 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」と表示される。
マルチメディアコンポーネントであるMicrosoft DirectXに関しては、一部のバージョンのみVisual Basic上からでも利用が可能となっている。Visual Basic 6.0ではVB用のCOMタイプ ライブラリを使用することでDirectX 7およびDirectX 8を利用できる[4][5]。 しかし、これらのVB向けDirectXインターフェイスは、Windows Vista以降ではサポートされていない[6]。
Visual Basic 1.0がリリースされたのは1991年である。ユーザーインターフェイスを作成するためのドラッグ・アンド・ドロップのデザインは、アラン・クーパーが開発したプロトタイプのフォームジェネレータTripodに由来する[7][8][9]。マイクロソフトはクーパーと契約し、TripodをWindows 3.0用のプログラム可能なフォームシステムにするために、Rubyというコード名で開発した(後のスクリプト言語Rubyとは関係ない)。Tripodにはプログラミング言語は含まれていなかった。マイクロソフトはRubyと同社のQuickBASICを組み合わせてVisual Basicを作成することにした。インタフェースジェネレータRubyはVisual Basicの視覚的な部分を提供した。Rubyはまた、追加のコントロール(当時は「ギズモ」と呼ばれていた)を含むダイナミックリンクライブラリ(DLL)をロードする機能も提供し、これは後にVBXインターフェイスとなった[10]。アラン・クーパーは「Visual Basicの父」と呼ばれている[11]。
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 ネイティブ) の最後のバージョン。 |
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を通じて制御することができるため、帳票を扱うような業務アプリケーション開発の分野で使われることも多かった。
Win32 ネイティブコードへのコンパイル機能がサポートされるようになり、実行速度が大幅に向上した。 開発環境内でのインタプリタ実行も引き続きサポート。
ActiveXに完全に対応し、ActiveXオブジェクトを使用することはもちろん作成することも可能。そのため、ActiveXコンポーネントとして公開されていたDAOやADO、oo4oなどを使用して、SQL ServerやOracle DBを制御することができ、多くのビジネスシーンで使用された。また、バージョン1.0からの経験も蓄積されていたためVisual Basic 6.0を扱えるプログラマ・情報量ともに豊富だった。
Webアプリケーションを開発するための方法(IISによるサーバーサイドVBの実行、VBフォームへのWeb機能組み込み、Internet ExplorerでのVBホスティング)がいくつか用意されていた[12]。
Microsoft Officeのアプリケーション用のマクロ環境として実装されているVisual Basic。反復操作を自動化するだけでなく、Windowsのフォームやボタンなどのコントロールをドキュメント内に配置して、ドキュメント編集のためのGUIを構築することも可能となっている。言語仕様としては、本家のVisual Basicで.NET以降がリリースされたのちも、ドキュメントの互換性を保つ目的で、Visual Basic 6.0ベースのものが実装されている。ExcelやAccess、Wordなどのアプリケーションで実装されているほか、独自に開発したアプリケーションにVBAを搭載することも可能で、サードパーティ製のアプリケーションにVBAが搭載される場合もある。本家Visual Basicとの大きな違いは、搭載アプリケーション内でしか実行できない点にある。
VBAを用いることで、対応するアプリケーション内の各要素をクラスオブジェクトとして操作できる。Excelを例にとると、「Excelアプリケーション」を表すApplicationオブジェクト、「Excelブック」を表すWorkbookオブジェクト、「スプレッドシート中のセルまたはセル範囲」を表すRangeオブジェクトなどがVBAから操作できる。
Office 2007まではバージョン6系列のVisual Basicが採用されていたが、Office 2010では、バージョン番号を7.0としている[13]。主な変更点として、64ビット環境への対応が挙げられる。LongPtr(32ビット環境・64ビット環境双方でポインタと同じ大きさとなる整数型)、LongLong(64ビット整数型、ただし64ビット環境でのみ使用可能)などのデータ型やそれに伴う変換関数の追加などが行なわれている。
Active Server Pages(ASP)の既定の言語であり、Windowsスクリプティングやクライアント側のウェブページスクリプティングでも利用される。文法はVBに似ているがVBランタイムではなくvbscript.dllで実行される別の言語である。ASPおよびVBScriptは、.NET Frameworkを使ったASP.NETとはまた別物である。
Visual Basic 6.0の後継言語であり、.NETプラットフォームの一部である。Visual Basic .NETは.NET Frameworkを使ってコンパイルされ実行される。同時期にリリースされたC#の姉妹言語であり、Visual Basic 6.0と後方互換性はない。自動移行ツールも用意されているが手動での手直しも必要となる。IDEとしてはVisual C#と遜色のないソリューション・プロジェクト管理機能も実装されている。
のちにMonoや.NET Core環境にも移植され、クロスプラットフォームとなった。
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日に延長サポートの期間を終えた[16]。したがって現在は開発環境のサポートを打ち切られている状態にある。
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実行(開発環境の実行)をサポートしている[17]。ただし、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][18]。64bit OS上ではWOW64により動作する。
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/02/02 08:52 UTC 版)
「New演算子」の記事における「Visual Basic」の解説
Visual Basicには、キーワードNewが存在し、COMのクラスのインスタンス作成に用いる。 'MSXML2が参照設定されてあるものとする。Dim xd As MSXML2.DOMDocumentSet xd = New MSXML2.DOMDocument また、次のように変数の宣言と同時にインスタンスを作成し変数を初期化させることも可能である。 Dim xd As New MSXML2.DOMDocument ただし、この2つのコード例は必ずしも同じ意味を持つとは限らない。
※この「Visual Basic」の解説は、「New演算子」の解説の一部です。
「Visual Basic」を含む「New演算子」の記事については、「New演算子」の概要を参照ください。