メインページ > 工学 > 情報技術 > プログラミング > Visual Basic for Applications
Visual Basic for ApplicationsはVisual BasicベースのMicrosoft Officeなどを操作することができるプログラミング言語です。略してVBAと言われることも多い。基本的に、マイクロソフト Excel または LibreOffice Calc などの高機能な表計算ソフトで、VBAまたは同等のプログラムの作成および実行を出来る。この教科書では説明の便宜上、マイクロソフト以外から提供されているVBA互換技術についても「VBA」と呼ぶことにする。
権利などの都合上、本書では、オープンソースの LibreOffice Calc で操作を説明することが多い。
Excelなどの表計算ソフト以外でもVBAが実行可能な場合もあるが、しかし本書では特に断らない限り、Excelおよび互換の表計算ソフトとの連動を前提にVBAの文法などを説明する。
Visual Basic for Applications（VBA）とOpenOffice Basic（LibreOffice Basicも含む）の主な差異は以下の通りです：
VBAとOpenOffice Basicは異なるオブジェクトモデルを持ちます。したがって、スプレッドシートや文書、データベースなどの操作方法において、異なるプロパティやメソッドを使用することがあります。
VBAは、Excel、Word、AccessなどのMicrosoft Office製品に特化した標準ライブラリを持ちます。一方、OpenOffice BasicはLibreOffice CalcやWriterなどのOpenOffice/LibreOffice製品に特化したライブラリを持ちます。
VBAは、Microsoft Office製品と統合されたIDEであるVBA Editorを使用します。一方、OpenOffice BasicはOpenOfficeやLibreOffice内に統合されたIDEを使用します。
VBAは、Microsoft Office製品との密接な統合を提供し、豊富な機能を提供します。一方、OpenOffice Basicは、OpenOffice/LibreOffice製品の機能に焦点を当てています。
VBAは、COMオブジェクトやWindows APIなどの機能をサポートしており、Windowsプラットフォームに特化しています。一方、OpenOffice Basicは、OpenOffice/LibreOfficeの機能に焦点を当てており、異なるプラットフォームに移植されることができます。
これらの差異により、VBAスクリプトとOpenOffice Basicスクリプトは一般的に互換性がないため、移植や相互利用には注意が必要です。
VBAとOpenOffice Basicの間にはいくつかの構文や機能の差異があります。以下はその一部です：
VBAでは Variant がデフォルトの変数型ですが、OpenOffice Basicでは Variant はサポートされず、代わりに Variant の代わりに Any を使用します。
OpenOffice Basicでは String 型の変数宣言時に Dim キーワードが必要ですが、VBAでは不要です。
VBAではコメント行は Rem キーワードで始まりますが、OpenOffice Basicでは Rem または単一引用符 (') を使用します。
VBAの条件分岐構文は If...Then...Else ですが、OpenOffice Basicでは If...Then...ElseIf...EndIf を使用します。
VBAでは Select Case 構文を使用しますが、OpenOffice Basicでは Select Case...Case...Case Else...End Select を使用します。
ループ構文において、VBAでは For...Next、Do...Loop、While...Wend を使用しますが、OpenOffice Basicでは同様の構文を使用しますが、Next、Loop、Wend などのキーワードがVBAとは異なります。
VBAとOpenOffice Basicは異なるオブジェクトモデルを持ちます。そのため、オブジェクトの操作方法やプロパティ、メソッド名が異なる場合があります。
例えば、VBAでは Workbook や Worksheet オブジェクトがありますが、OpenOffice Basicでは SpreadsheetDocument や Sheet オブジェクトに相当するものがあります。
これらの違いを考慮しながら、VBAからOpenOffice Basicへのスクリプトの移植や、OpenOffice Basicでの開発を行う必要があります。
予備知識として、読者はExcelの表計算の使い方およびグラフの作成など、VBAを使わない機能については知っているとする。
もしExcel操作で知らない機能があれば、必要になり次第、適宜、自習などしてほしい。本書ではマクロ以外の表計算やグラフなどの操作については説明しない。
ほか、表計算ソフトのことを「スプレッドシート」（spread sheet）ということも多い。
Google アプリで使えるマクロ的な機能である Google Apps Script （略称「GAS」）は JavaScript系の文法の言語であり、VBA系ではないので本教科書では深入りしない。 Google Apps Scriptについては別途、wikibooks教科書があるので、そちらを参照のこと。
Microsoft Office Excel（いわゆる「エクセル」）または  LibreOffice calc など表計算ソフトを入れれば、すでにVBA実行機能もコンピュータにインストールされている。特に追加のインストールは必要ない。
Apache OpenOffice.org Calc については、2022年の現在では、初期設定のままではマクロを使えない。初版の事情があり、Apache OpenOffice でVBAマクロを使うのは難しい。
なお、説明の都合で「VBA」と言ったが、LibreOffice では正しくは LibreOffice Basic という名称である。OpenOffice では、OpenOffice Basic という名称である。
Linuxでは、LibreOffice と OpenOfficeはソフトウェア依存性の理由で共存できない。あらかじめ、どちらを使うかを決めておく必要がある。OpenOfficeを使うには、LibreOfficeを削除しないといけない。
詳しくは
を参照せよ。
※ 内容がまとまったら、サブページを作成して分離のこと。