長年愛されてきたVisual Basic

今回取り上げるのは「Visual Basic」です。Visual BasicはWindowsのアプリ開発言語として、長年愛されてきました。手軽に使える点が評価されており、プログラミング初心者からプロにまで長年使われています。その証拠に、TIOBEの発表するプログラミング言語ランキング(TIOBE Programming Community Index)でも、常に上位にランクインしています。今回は、改めて、Visual Basicの魅力を確認しましょう。

  • 長年愛されてきたVisual Basic

    長年愛されてきたVisual Basic

歴史を通じてBASIC言語はマイクロソフトの柱

そもそも、マイクロソフト社は、長年BASIC言語の開発を手がけてきました。1970年代から1980年代にかけて、様々なパソコンに、マイクロソフトが開発したBASICが最初から組み込まれました。それらには、MSX-BASIC、N88-BASICなどがあり、それがマイクロソフトの基盤を築いていきます。また、当時のパソコンは、電源を入れると、最初にBASICを操作する画面が表示されるものもあり、まさに、BASICがOSのような働きをしました。

  • 8bitパソコンのMSXに搭載されていたMSX-BASICの画面

    8bitパソコンのMSXに搭載されていたMSX-BASICの画面

そして、1990年になって、Windows 3.0が発表され、その翌年の1991年に、Visual Basic 1.0が登場します。その後、新しいWindows OSが発表されると、その機能を利用したアプリを開発するための新機能が、次々とVisual Basicに搭載されていきました。つまり、Visual Basicの歴史は、Windowsと共にあったと言えます。

そして、マイクロソフトは、専用アプリの開発用だけでなく、製品を自動化するマクロとしても、Visual Basicを投入していきます。その最たるものが、Microsoft Officeに搭載されている、VBA(Visual Basic for Applications)です。ExcelやWord、Accessなど、Office製品には、VBAが搭載されています。VBAを利用して様々な自動処理が行われています。もはや、Officeに加えて、VBAが無くては仕事が成り立たないという職場も多くあることでしょう。なお、互換性の問題からVBAの言語仕様は、Visual Basic6.0相当となっています。

  • ExcelをはじめOfficeに搭載されているVBA

    ExcelをはじめOfficeに搭載されているVBA

そして、2002年にVisual Basicは『.NET Framework』に対応し、新しい言語「Visual Basic .NET(VB.NET)」としてリリースされました。Visual Basic .NETでは、オブジェクト指向に対応したり、エラー処理が追加されたりしています。動作速度が高速になっただけでなく、他の.NET Framework言語と同じ機能が使えるようになりました。

ペタペタ貼り付けてアプリが開発できる

Visual Basicが人気なのは、プログラミング初心者に優しいBASIC言語が使えることに加えて、フォーム上にマウスでボタンやエディタなどのGUIパーツを配置していくスタイルで開発ができることが挙げられます。

ここでは、比較的多くのPCにインストールされているExcelを利用して、Visual Basicを体験してみましょう。最初にExcelを起動したら、[Alt]+[F11]キーを押します。すると、VBA(Visual Basic for Applications)の開発環境が起動します。

  • VBAの開発環境が起動したところ

    VBAの開発環境が起動したところ

VBAの画面が表示されたら、メニューから[挿入 > ユーザーフォーム]をクリックしてみましょう。すると、フォーム編集画面とGUIパーツを配置するツールボックスが表示されます。ちなみに、このVBAの起動キーとフォームの挿入の手順は、macOS版のExcelでも同じです。

  • macOS版のExcelでもVBAが使える

    macOS版のExcelでもVBAが使える

そして、ツールボックスからボタンを選んで、フォーム上にドラッグ&ドロップしてみましょう。ボタンがフォーム上に配置されます。配置できたら、ボタンをダブルクリックしましょう。すると、自動的に、ボタンをクリックしたときのイベントを記述する画面が表示されます。

そこで、以下のように『MsgBox "Hello!"』と記述します。

 Private Sub CommandButton1_Click()
     MsgBox "Hello!"
 End Sub

プログラムを書いたら、VBA開発ウィンドウの上部にある実行ボタンをクリックするか、[F5]キーを押してみましょう。

  • ボタンをクリックするとメッセージが表示される

    ボタンをクリックするとメッセージが表示される

ボタンが配置されたフォームが表示されるので、ボタンをクリックしてみましょう。すると、「Hello!」とメッセージが表示されます。

このように、マウス操作で、ペタペタとGUIパーツを貼り付けて、アプリを開発することができます。

Visual BasicでFizzBuzz問題を解いてみよう

それでは、Visual Basicの雰囲気を知るために、FizzBuzz問題を解いてみましょう。FizzBuzz問題とは、以下のような問題です。

1から100までの数を出力するプログラムを書いてください。ただし、3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」と表示してください。3と5の倍数の時は「FizzBuzz」と表示してください。

先ほどと同じ手順で、コマンドボタン1つと、テキストボックス1つをフォーム上に配置します。そして、ボタンをダブルクリックして、以下のプログラムを記述します。

 Private Sub CommandButton1_Click()
     Dim s As String
     Dim n As String

     For i = 1 To 100
         If (i Mod 3 = 0) And (i Mod 5 = 0) Then
             n = "FizzBuzz"
         ElseIf (i Mod 3 = 0) Then
             n = "Fizz"
         ElseIf (i Mod 5 = 0) Then
             n = "Buzz"
         Else
             n = Str(i)
         End If
         s = s & n & vbCrLf
     Next

     TextBox1.Text = s
 End Sub

プログラムを実行して、ボタンをクリックすると、FizzBuzz問題の答えがテキストボックスに表示されます。

  • VBでFizzBuzzを解いてみたところ

    VBでFizzBuzzを解いてみたところ

まとめ

以上、簡単でしたが、Visual Basicの歴史や、簡単な使い方について紹介しました。Visual Basicは、初心者からプロに至るまで使われており、また様々な場面で利用されています。そのため、資料が多くあるというのも、そのメリットの一つです。Webで検索してもたくさんのサンプルやTipsを見つけることができます。ただし、今回紹介したように、その歴史が長いため、古い情報もあるので、バージョンや製品名などを含めて検索すると良いでしょう。

とは言え、Visual Basicは、これから覚える価値のあるプログラミング言語でしょうか。これから覚えるべきプログラミング言語のリストに、Visual Basicが挙げられることは希です。しかし、仕事ですぐにプログラミングを活用したいと思ったら、Visual Basic、特にVBAはオススメです。Excelで行う事務処理をすぐに自動化できるからです。逆に言えば、真剣に学ばなくても、参考コードを見れば、なんとなく作ることが出来てしまうのが、Visual Basicなのかもしれません。

ここまで紹介したように、今後も、WindowsやOffice製品がある限り、Visual Basicは使い続けられることでしょう。

自由型プログラマー。くじらはんどにて、プログラミングの楽しさを伝える活動をしている。代表作に、日本語プログラミング言語「なでしこ」 、テキスト音楽「サクラ」など。2001年オンラインソフト大賞入賞、2005年IPAスーパークリエイター認定、2010年 OSS貢献者章受賞。技術書も多く執筆している。