ビジュアルベーシック(VB)とは?VBA・VB.NETとの違いと特徴をわかりやすくご紹介
VB(Visual Basic)は、初心者でも簡単にプログラミングができる言語であり、アプリ開発の初心者でも始めやすいです。本記事では、VBの基本情報から特徴、VBAやVB.NETとの違い、30年以上の歴史、将来性を詳しく解説します。
プログラミング言語の基本的な要素となる変数・データ型・制御構造などもコード例と合わせてご紹介しています。ビジュアルベーシックに興味をお持ちの方はぜひご覧ください。
-
Contents
ビジュアルベーシック(VB)とは?
ビジュアルベーシック(以下、VB)は、マイクロソフト社が開発したプログラミング言語です。
元となったBASIC言語は、1975年にビル・ゲイツ氏により最初のバージョンがリリースされました。BASIC言語の特徴は、シンプルで使いやすい文法で、文系の学生がコンピューターを使えるように設計されました。
VBは、BASIC言語の文法をもとにWindowsアプリケーションを開発するための機能を搭載した言語のファミリーで、いくつか派生した言語が登場しています。詳しくVBファミリの違いを見ていきましょう。
-
Visual Basic(VB)
VBの名称は、大きく分けて二通りの製品に対し使用されており、一つは本項目で採り上げる伝統的なVisual Basicですが、1998年に最終バージョンのVisual Basic 6.0がリリースされ、2008年にサポートが終了しています。
もう一つの、より新しい「VB.NET」には別項で触れます。
VBは、マイクロソフトが1991年にリリースしたプログラミング言語で、GUIを含むWindowsアプリケーションを迅速に開発するための機能を搭載しています。
VBの特長は開発のしやすさです。「フォーム」「コントロール」「コンポーネント」と呼ばれる部品(例えば、ボタンやチェックボックスなど目に見える部品や、タイマーなどの機能)を組み合わせることで、アプリケーションを開発でき、シンプルなアプリケーションなら数分で実行ファイル(.exe形式)を作成できます。
Visual C++など他のマイクロソフトが提供するプログラミング言語よりも学習しやすく、コンポーネントを使用すれば、WindowsのOS機能の細部まで活かせるWindows APIを使用した開発もでき、データベースを使ったアプリケーション開発が可能なことから、多くの開発者に採用されました。
VBの言語としての特徴は、構造化プログラミングをサポートし、サブルーティンなどで処理を分割できます。
また、バリアント型と呼ばれる、数値や文字列などさまざまな型の値を格納できる変数を作成できるため、RubyやPythonなどのスクリプト言語と同様、型を決めずに変数をコーディングできます。
-
Visual Basic for Applications(VBA)との違い
VBAは名前のとおり、アプリケーションのためのVB言語で、Excelなどマイクロソフト社のオフィス製品向けのマクロを作成できます。
例えば、Excelで繰り返しおこなう作業を自動化したり、Accessでデータベースを使ったアプリケーション開発に使用できます。VBAは、プログラミング言語としてはVBと同じ文法を持っており、VBはスタンドアローンで動作する実行ファイル(.exe形式)を作成できるのに対して、VBAは対象アプリケーションとともに動作するため、実行時にExcelやAccessなどのソフトが必須です。
-
VB.NETとの違い
2002年にリリースされたVB.NET(Visual Basic .NET)は、末尾の「.NET」が表すとおり、マイクロソフト社が展開する.NETプラットフォームで動作するアプリケーションを開発できるプログラミング言語です。
.NETとは、マイクロソフト社がリリースした、オープンソースのアプリケーション開発環境です。クロスプラットフォームを特徴としており、.NET向けに作成されたアプリケーションは、Windowsはもちろん、macOSやLinuxなどさまざまな環境で動作します。
プログラミング言語としては、従来のVB 6までの文法を踏襲していますが後方互換性はなく、従来のVBコードを動作させるにはコードの修正が必要です。また、.NETをサポートしたことで、豊富なライブラリや、例外処理・メモリ管理などの機能、オブジェクト指向の言語機能が追加されています。
VB.NETは2005年に名称が変更され、現在では単にVisual Basicと呼ばれています。
-
Visual Basicの特徴
VBは歴史のある言語で特有の地位を築いています。VBの特徴を見ていきましょう。
-
プログラミングが簡単にできる
VBは、初心者向けの手続き型プログラミング言語「BASIC」をベースにして開発されたプログラミング言語です。シンプルな文法なので、初心者でも比較的容易に理解し操作でき、プログラミング初心者に支持されてきました。
-
アプリ開発の初心者でも始めやすい
構文ハイライト・自動補完などのコードエディタや、コードの記述を容易にするウィザードを搭載しており、コードを完成させるまでの支援機能が充実しています。
また、言語の使い方や機能に関するドキュメントや書籍も充実しているので、開発初心者にとって始めやすい言語となっています。
-
Windows上で操作できる
VBを使用すれば、Windowsアプリケーションを開発できますが、そもそもVBで使用する開発環境自体が、Windows上のIDE(統合開発環境)として整備されており、プログラムの作成、編集、コンパイル、デバッグ、テストなど一連のプロセスを、使いなれたOSのGUI環境で完結できます。
-
RADの先駆けである
RAD(Rapid Application Development)とは高速アプリケーション開発であり、短い開発期間でGUIアプリケーションを開発するのに適した開発手法です。
RADは、迅速にプロトタイプとなるアプリケーションを作り、改善できるため、開発の初期段階でクライアントの望む機能とマッチしているか確認でき、ソフトウェア開発初期段階のリスクを減らし、顧客満足度を上げられます。また、迅速に製品を開発し市場に投入できるため投資の回収を早められるなど、複数のメリットがあり、RADの考え方は開発者に広く受け入れられています。
VBでは、開発画面上に、例えばボタンやフォーム部品などをドラッグアンドドロップし、アプリケーションのGUIを構築できるだけでなく、ボタンを押した場合など各種イベントを、VBのコードと結びつける操作もマウス操作でおこなえるため、GUIアプリケーションを迅速に開発できます。
ここまでVBとVBA、vb.netとの違い、VBの特徴をみてきました。ここからはVBの歴史を振り返りながら、現在やその将来性について解説していきます。その前に、現在はどのようなVB案件があるのか状況をみてみましょう。下記よりご覧ください。
-
Visual Basicの歴史一覧
VBは最初のバージョンが1991年にリリースされ、Visual Basic 6.0までアップデートを繰り返してきました。
2002年からは、.NETに対応し後方互換性のない新たな言語、VB.NETとしてリニューアルされ、.NETの進歩とともに機能の改善が図られてきました。2005年に名称から.NETが取り除かれ、以降はVisual Basic 2005などの名称でバージョンアップを繰り返し、最新は2021年3月にリリースされたVisual Basic 16.9となっています。
年 |
バージョン |
備考 |
1991(平成3) |
Visual Basic 1.0 |
日本未発売 |
1992 |
Visual Basic 2.0 |
データベース対応 |
1993 |
Visual Basic 3.0 |
日本未発売 |
1995 |
Visual Basic 4.0 |
Windows 95発売。32bit/16bit両対応 |
1997 |
Visual Basic 5.0 |
コンパイルに対応し高速化 |
1998 |
Visual Basic 6.0 |
ActiveX、WEBアプリケーションに対応 |
2002 |
Visual Basic .NET |
.NET Framework1.0対応、.NETランタイムに対応 |
2003 |
Visual Basic .NET 2003 |
.NET Framework 1.1対応、VBからのアップグレード機能の向上 |
2005 |
Visual Basic 2005 |
.NET Framework 2.0対応。名前から.NET削除。言語機能に多くの改良 |
2008 |
Visual Basic 2008 |
.NET Framework 3.0に対応。LINQやラムダ式など言語機能の追加 |
2010 |
Visual Basic 2010 |
.NET Framework 4.0に対応。コンパイラの改善 |
2012 |
Visual Basic 2012 |
.NET Framework 4.5に対応。非同期プログラミングやイテレータの追加 |
2013 |
Visual Basic 2013 |
.NET Framework 4.5.1に対応。 |
2015 |
Visual Basic 2015 |
.NET Framework 4.6に対応。Null条件演算子、NameOfなど追加 |
2017 |
Visual Basic 2017 |
コードネームVB 15.0、タプルに対応 |
2019(平成31) |
Visual Basic 2019 |
.NET Coreに注力、浮動小数点数の整数変換を高速化 |
2021(令和3) |
Visual Basic 16.9 |
最新のリリース。初期化専用プロパティに対応 |
-
Visual Basicの基本的なコード一覧
Visual Basicはシンプルな英単語を使った文法が特長です。プログラミング言語としての基本的な要素をいくつかご紹介します。
変数
VBで変数を使用するには、まずDimステートメントで宣言します。
Dim myNumber As Integer |
上記で、Integerは変数myNumberを整数型と宣言しています。VBには整数型(Integer Long Short)の他にも、浮動小数点(Decimal Single Double)などの数値、文字(Char)および文字列(String)、その他のデータ型(Date Boolean Object)が備わっており、変数の用途に応じて利用できます。
一度宣言した変数に対しては、代入演算子=を使って値を代入できます。
myNumber = 10 |
変数を使って計算をおこない、結果を別の変数や同じ変数に代入できます。
myNumber = myNumber + 1 |
演算子
変数と演算子を組み合わせて、式を作成できます。Visual Basicの演算子には以下のようなものがあります。
分類 |
概要 |
演算子 |
算術演算子 |
数学的な計算を実行します。 |
^ * / \ Mod + – |
代入演算子 |
代入演算を実行します。 |
= ^= *= /= \= += -= |
比較演算子 |
比較をおこないます。 |
< <= > >= = <> Is IsNot Like |
連結演算子 |
文字列を結合します。 |
& |
論理/ビット演算子 |
論理演算を実行します。 |
And Not Or Xor AndAlso OrElse IsFalse IsTrue |
ビットシフト演算子 |
ビットパターンの算術シフトを実行します。 |
>> |
その他の演算子 |
その他の操作を実行します。 |
?. ?() AddressOf Await GetType TypeOf Function If |
変数と演算子による四則演算の例は以下のとおりです。
Dim x As Integer = 10 Dim y As Integer = 5 Dim result As Integer ‘ 算術演算子 result = x + y Console.WriteLine(“x + y = “ & result) result = x – y Console.WriteLine(“x – y = “ & result) result = x * y Console.WriteLine(“x * y = “ & result) result = x / y Console.WriteLine(“x / y = “ & result) |
制御構造
制御構造とは、プログラムの実行順序を制御するための文法的な構造です。主に、条件分岐と繰り返しの2種類があります。制御構造を使うと、プログラムはより複雑な処理を実現できます。
条件分岐は、ある条件が成立するかどうかによって、プログラムの実行順序を変更する制御構造です。例えば、「もしAならばBを実行する」などです。
繰り返しは、ある条件が成立するまで、特定の処理を繰り返し実行する制御構造です。例えば、「AがBより小さい間、Aに1を足し続ける」などです。
Visual Basicの制御構造には以下のようなものがあります。
分類 |
制御構造 |
概要 |
条件分岐 |
If..Then..Else |
条件が成立する・しないで処理を選択します |
条件分岐 |
Select..Case |
複数のケースから式の値により処理を選択します |
繰り返し |
While..End While |
冒頭の条件が成立する限り実行 |
繰り返し |
Do..Loop |
最初または最後の条件で繰り返し実行 |
繰り返し |
For..Next |
指定回数繰り返し実行 |
繰り返し |
For Each..Next |
コレクションの要素1個につき1回実行 |
その他 |
Try..Catch..Finally |
例外が起きた場合に処理を実行します |
その他 |
Using..End Using |
リソースを使用し自動的に破棄する |
その他 |
With..End With |
オブジェクトのメンバーにアクセスする |
条件分岐と比較演算子・論理演算子の使用例は以下のとおりです。
Dim x As Integer = 10 Dim y As Integer = 5 Dim result As Integer ‘ 比較演算子 If x > y Then Console.WriteLine(“x は yより大きい”) ElseIf x < y Then Console.WriteLine(“x は yより小さい”) Else Console.WriteLine(“x は yに等しい”) End If ‘ 論理演算子 Dim a As Boolean = True Dim b As Boolean = False If a And b Then Console.WriteLine(“a And b は真”) Else Console.WriteLine(“a And b は偽”) End If If a Or b Then Console.WriteLine(“a Or b は真”) Else Console.WriteLine(“a Or b は偽”) End If If Not a Then Console.WriteLine(“Not a は真”) Else Console.WriteLine(“Not a は偽”) End If |
Selectによる条件分岐の例は以下のとおりです。
‘ Select…Case構造 Dim grade As String = “B” Select Case grade Case “A” Console.WriteLine(“素晴らしい!”) Case “B”, “C” Console.WriteLine(“よい成績です”) Case “D” Console.WriteLine(“合格です”) Case “F” Console.WriteLine(“再挑戦しましょう”) Case Else Console.WriteLine(“落第です”) End Select |
各種の繰り返し(ループ)構造の例は以下のとおりです。
‘ For…Nextループ For i As Integer = 1 To 5 Console.WriteLine(i) Next ‘ While…End Whileループ Dim n As Integer = 1 While n < 6 Console.WriteLine(n) n += 1 End While ‘ Do…Loopループ Dim m As Integer = 1 Do Console.WriteLine(m) m += 1 Loop While m < 6 |
-
Visual Basicの将来性と重要性
VBは既存のシステムで使用され続ける一方で、新規案件開発では使用が減少する可能性があります。VB案件の単価は他言語に比べ低い傾向がありますが、案件数は一定数以上あり、VBができるエンジニアが少ないため、将来も一定の需要は継続すると考えられます。
これから学ぶ場合は、VBだけでなく他の言語も同時に学習するとよいでしょう。
姉妹言語のVBAはMicrosoft Officeの定型作業を効率化するマクロ作成に欠かせない言語であり、今後も安定していると考えられます。
-
まとめ
Visual Basicをさまざまな角度から紹介してきました。
- ・VBファミリーの歴史と種類。現在はVB 16.0系が最新となる。
- ・VBの特長は簡単さ。Windowsアプリケーションを迅速に開発できます。
- ・VBの基本的なコード、変数・データ型・制御構造の具体例。
Visual Basicは歴史の長い言語です。関わってきた開発者も多く、VBAはマクロ作成に現役で使用されています。
.NETファミリーに加わったことで、C#などと組み合わせても使用できるので、多くの人に支持された簡潔な文法とマクロ作成に興味がある方は、VBの世界をひもといてみてはいかがでしょうか。