| Visual Basic 中学校 関連用語集 |
|
|
読み方:ブイビーエー
正式名称:Visual Basic for Applications
| 意味 |
VBAとは、ExcelやWordなどVB以外のアプリケーションに付属しているVisual Basicでのプログラミング環境、および言語のこと。
| 詳細 |
VBでプログラムするにはVBを購入するのが最もシンプルな方法ですが、いくつかのアプリケーションにはVBが付属しています。これらの付属しているVBのことをVBAと呼びます。
VBAが付属している主な製品は以下の通りです。
VBAはそれぞれの製品をコントロールするための役割を担っています。たとえばExcel VBAを使用するとExcelの様々な操作をVBを使ってプログラムすることができ、通常の操作では実現できないような事や実現困難なことを行うようにプログラムすることが可能です。これを「マクロ」と呼ぶ場合もあります。各アプリケーションはこのためのCOMオブジェクトを公開しています。
通常のVBと異なりそれぞれおのアプリケーションを操作する目的に特化しているので、一般的な操作は行えない場合があります。
たとえば、Excel VBAでは簡単な画像処理プログラムも困難です。
2009年1月現在、VBAは言語仕様上はVB6.0に相当します。VBAではバージョンの表記は最新のもので6.5となっています。
VBAで一般的な処理が困難なのは言語上の制限があると言うわけではなく、付属しているオブジェクトがそれぞれのアプリケーションに特化したものばかりだからです。たとえば、VBで普通使うようなFormやPictureBoxはVBAには付属していません。
言語の機能は通常版のVBとまったく同じです。ただし、かなり昔のバージョンのVBAでは、言語機能自体にも差がありました。
VBAは主にマイクロソフト系のアプリケーションに付属していますが、処理系の実装に関する仕様が公開されており、マイクロソフト以外の製品にもVBA処理系を付属させることが可能です。
たとえば、以下の製品にはVBAが搭載されています。
※この情報は掲示板にて投稿いただきました。ありがとうございます。
他にも、かつてサードパーティ製のフォント作成アプリケーションにVBAが付属していたものがありました。
電卓やメモ帳、画像処理ソフトにもVBAを付属させることは可能で、マイクロソフトが公開している開発者用のサンプルにはVBAを搭載した電卓が含まれています。
ただし、.NETのリリース以降はVBAが採用しているVB6.0の言語仕様が古いものであるという認識が広まり、積極的にVBAを活用しようと言う機運は昔に比べて少なくなってきたように感じられます。
これには、.NET版のVBAとも言うべき、Visual Studio Tools for Application(VSTA)およびVisual Studio Tools for Office (VSTO)の存在も影響しています。これらを使用するとVB.NETやC#などの言語を使用してExcelやWordなどにプログラムを施すことができます。
VSTOは各アプリケーションに付属しているわけではなく、あくまでもVisual Studioの一部です。対応しているソフトはVBAほど広範ではありません。たとえば、Accessには未対応です。VSTAは各アプリケーションに搭載されるようですが現在のところ搭載されているアプリケーションはごくわずかでExcelやWordには搭載されていません。
| VBA | VSTO | VSTA | |
| 名称 | Visual Basis for Applications | Visual Studio Tools for Office | Visual Studio Tools for Applications |
| 概要 | 個々のアプリケーションに搭載されているプログラミング環境。 | Visual Studioの一部として搭載されているプログラミング環境 | 個々のアプリケーションに搭載されているプログラミング環境 |
| 対応アプリ | Excel, Word, Access, FrontPage, Visio, Outlook, PowerPoint, Expression Web, AutoCAD, CorelDRAW Graphicsなど | Excel, Word, Visio, Outlook, PowerPoint, InfoPath 2007など | InfoPath 2007, SQL Server 2008 Integration Servicesなど |
| ←古い | 新しい→ |
この表はそれぞれの概要をまとめたものです。ExcelやWordなどバージョンを省略しましたが、バージョンによっても状況は大きく異なります。より詳細な情報はマイクロソフトのサイトで調べてください。また下の段の「古い」、「新しい」は目安として付けましたが、「新しいから今後普及する」とか「古いから今後なくなっていく」などは一概に言えません。
私は2006年ごろのイベントでマイクロソフトはすべてのOfficeアプリケーションにVSTOを対応させる計画であると聞きましたが、道のりは険しいようです。
| 参考情報 |
ExcelとVBAの関係を表にまとめます。Excel以外のOffice製品もこの表に準じます。
| Excel | 対象OS | 搭載VBAのバージョン | 機能的に対応するVBのバージョン |
| Excel 97 | Windows | 5.0 | 4.0と5.0の中間 |
| Excel 2000 | Windows | 6.0 | 6.0 |
| Excel 2002 (Office XP) | Windows | 6.2 | 6.0 |
| Excel 2003 | Windows | 6.3 | 6.0 |
| Excel 2007 | Windows | 6.4 | 6.0 |
| Excel 2010 | Windows | 7.0 | 6.0 + アルファ (LongLong型導入など) |
| Excel v.X | Macintosh | 5.0 | 5.0 |
| Excel 2004 | Macintosh | 5.0 | 5.0 |
| Excel 2008 | Macintosh | (非搭載) | - |
| Excel 2011 | Macintosh | 6.5 | 6.0 |
※この情報は掲示板で投稿いただきました。ありがとうございます。
※同じバージョンでも環境によって搭載VBAのバージョンが異なることがあるようです。この表は目安として参考にしてください。
| 関連用語 |
Visual Studio Tools for Office (VSTO)
Visual Studio Tools for Application (VSTA)