Visual Basic for Applications
メインページ > 工学 > 情報技術 > プログラミング > Visual Basic for Applications
Visual Basic for Applicationsはw:Visual BasicベースのMicrosoft Officeなどを操作することができるプログラミング言語です。略してVBAと言われることも多い。基本的に、マイクロソフト Excel または LibreOffice Calc などの高機能な表計算ソフトで、VBAまたは同等のプログラムの作成および実行を出来る。この教科書では説明の便宜上、マイクロソフト以外から提供されているVBA互換技術についても「VBA」と呼ぶことにする。
目次
[編集]- /インストール方法および立ち上げ方
- /基本的な文法 - いわゆる Hello World とその周辺知識. - 学べること: MsgBox,
- /シートからの読み書き 学べること: 変数宣言 Dim , 関数 getCellByPosition ※ LibreOffice
- /言語仕様 - 言語仕様について
- /Excel - Microsoft Excel専用の仕様
関連技術
[編集]- JavaScriptマクロ ※ サブページは見送り
本書の注意
[編集]- 権利などの都合上、本書では、オープンソースの LibreOffice Calc で操作を説明することが多い。
- Excelなどの表計算ソフト以外でもVBAが実行可能な場合もあるが、しかし本書では特に断らない限り、Excelおよび互換の表計算ソフトとの連動を前提にVBAの文法などを説明する。
Visual Basic for ApplicationsとOpenOffice Basicの差異
[編集]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製品に特化したライブラリを持ちます。
- IDE(統合開発環境)の差異:
- 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では
- コメントの記述:
- VBAではコメント行は
Rem
キーワードで始まりますが、OpenOffice BasicではRem
または単一引用符 ('
) を使用します。
- VBAではコメント行は
- 条件分岐構文:
- VBAの条件分岐構文は
If...Then...Else
ですが、OpenOffice BasicではIf...Then...ElseIf...EndIf
を使用します。 - VBAでは
Select Case
構文を使用しますが、OpenOffice BasicではSelect Case...Case...Case Else...End Select
を使用します。
- VBAの条件分岐構文は
- ループ構文:
- ループ構文において、VBAでは
For...Next
、Do...Loop
、While...Wend
を使用しますが、OpenOffice Basicでは同様の構文を使用しますが、Next
、Loop
、Wend
などのキーワードがVBAとは異なります。
- ループ構文において、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を削除しないといけない。
詳しくは
を参照せよ。
※ 編集用
[編集]※ 内容がまとまったら、サブページを作成して分離のこと。