Visual Basic for Applications
出典: フリー百科事典『ウィキペディア(Wikipedia)』
Visual Basic for Applications(ビジュアルベーシック・フォー・アプリケーションズ、VBA)は、マイクロソフト社製のMicrosoft Officeシリーズに搭載されているプログラミング言語である。Microsoft Office専用という印象が強いが、実際にはマイクロソフト社からしかるべきライセンスを取得することで他のアプリケーションに組み込むことも可能である。実際、マイクロソフト社に買収される前のVisioにも搭載されていた。CADソフトのAutoCADやMicroStation V8等にも搭載されている。
VBA を使用することで、ExcelやAccessなどを使用した定型業務を自動化することができる。また、アプリケーションの機能をカスタマイズすることも可能である。
VBAは、同社のVisual Basicから派生した言語であり、Visual Basicと同様、ActiveXを使用することで既存資源の流用も可能である。ただ、近年マイクロソフト社はActiveX/Component Object Modelから.NET Frameworkへの転換を進めており、Microsoft Office System 2003には従来版にあった「Developer Edition」(VBAカスタムアプリケーション開発用のパッケージ)が存在せず、替わりにVisual Studio Tools for the Microsoft Office Systemと呼ばれる製品が出荷されている。
目次 |
[編集] VBA の歴史
1994年、マイクロソフトは Excel 5.0 とともに VBA をリリースした。それは従来までのマクロ言語の代替でしかなかった。
しかし、翌年にリリースした Office95や、1997年のOffice97において、Excel以外のアプリケーション、すなわちAccessやWordにもVBAを搭載していった。合わせてVBAの仕様拡張も行われ、VBAはOffice製品に共通したプログラミング言語として確立される。
[編集] コード例
- 以下は、Excelにおいて、"Sheet1"の名前のワークシートを削除するVBAの例である。
Application.DisplayAlerts = False Worksheets("Sheet1").Delete Application.DisplayAlerts = True
- また、Excelで以下のコードを実行すると、セルA1からI9の範囲に掛け算九九の表を作成することができる
Dim i As Integer Dim j As Integer For i = 1 To 9 For j = 1 To 9 Cells(i, j).Value = i * j Next Next
- 条件によって4色以上に色を塗り分けるときも、VBAを利用する(3色以下のときは一般機能の「条件付き書式」を使用するのが望ましい)。以下のコードを実行するとセルB2からE15までの範囲内のセルを5以下→水色、5を超え10以下→明るい緑、10を超え15以下→黄色、15以上→赤と塗り分けることができる。
Dim myCell As Range For Each myCell In Range("B2:E15") Select Case myCell.Value Case Is <= 5 myCell.Interior.Color = RGB(0, 255, 255) Case 6 To 10 myCell.Interior.Color = RGB(0, 255, 0) Case 11 To 15 myCell.Interior.Color = RGB(255, 255, 0) Case Is > 15 myCell.Interior.Color = RGB(255, 0, 0) End Select Next myCell
[編集] VBAの問題
VBA は Excel など文書の一部として格納される。そのため、文書を閲覧する際、VBA で記述した悪意のあるプログラム(マクロウイルス)を自動実行させることにより、クライアントにダメージを与えてしまう。