コンテンツにスキップ

Visual Basic for Applications

出典: フリー教科書『ウィキブックス(Wikibooks)』

メインページ > 工学 > 情報技術 > プログラミング > Visual Basic for Applications


Wikipedia
Wikipedia
ウィキペディアVisual Basic for Applicationsの記事があります。

Visual Basic for Applicationsw:Visual BasicベースのMicrosoft Officeなどを操作することができるプログラミング言語です。略してVBAと言われることも多い。基本的に、マイクロソフト Excel または LibreOffice Calc などの高機能な表計算ソフトで、VBAまたは同等のプログラムの作成および実行を出来る。この教科書では説明の便宜上、マイクロソフト以外から提供されているVBA互換技術についても「VBA」と呼ぶことにする。

目次[編集]

関連技術[編集]

  • JavaScriptマクロ ※ サブページは見送り

本書の注意[編集]

  • 権利などの都合上、本書では、オープンソースの LibreOffice Calc で操作を説明することが多い。
  • Excelなどの表計算ソフト以外でもVBAが実行可能な場合もあるが、しかし本書では特に断らない限り、Excelおよび互換の表計算ソフトとの連動を前提にVBAの文法などを説明する。

Visual Basic for ApplicationsとOpenOffice Basicの差異[編集]

Visual Basic for Applications(VBA)とOpenOffice Basic(LibreOffice Basicも含む)の主な差異は以下の通りです:

  1. オブジェクトモデルの違い:
    • VBAとOpenOffice Basicは異なるオブジェクトモデルを持ちます。したがって、スプレッドシートや文書、データベースなどの操作方法において、異なるプロパティやメソッドを使用することがあります。
  2. 標準ライブラリの違い:
    VBAは、Excel、Word、AccessなどのMicrosoft Office製品に特化した標準ライブラリを持ちます。一方、OpenOffice BasicはLibreOffice CalcやWriterなどのOpenOffice/LibreOffice製品に特化したライブラリを持ちます。
  3. IDE(統合開発環境)の差異:
    VBAは、Microsoft Office製品と統合されたIDEであるVBA Editorを使用します。一方、OpenOffice BasicはOpenOfficeやLibreOffice内に統合されたIDEを使用します。
  4. 言語の拡張性:
    VBAは、Microsoft Office製品との密接な統合を提供し、豊富な機能を提供します。一方、OpenOffice Basicは、OpenOffice/LibreOffice製品の機能に焦点を当てています。
  5. 機能のサポート:
    VBAは、COMオブジェクトやWindows APIなどの機能をサポートしており、Windowsプラットフォームに特化しています。一方、OpenOffice Basicは、OpenOffice/LibreOfficeの機能に焦点を当てており、異なるプラットフォームに移植されることができます。

これらの差異により、VBAスクリプトとOpenOffice Basicスクリプトは一般的に互換性がないため、移植や相互利用には注意が必要です。

VBAとOpenOffice Basicの間にはいくつかの構文や機能の差異があります。以下はその一部です:

  1. データ型の違い:
    • VBAでは Variant がデフォルトの変数型ですが、OpenOffice Basicでは Variant はサポートされず、代わりに Variant の代わりに Any を使用します。
    • OpenOffice Basicでは String 型の変数宣言時に Dim キーワードが必要ですが、VBAでは不要です。
  2. コメントの記述:
    • VBAではコメント行は Rem キーワードで始まりますが、OpenOffice Basicでは Rem または単一引用符 (') を使用します。
  3. 条件分岐構文:
    • VBAの条件分岐構文は If...Then...Else ですが、OpenOffice Basicでは If...Then...ElseIf...EndIf を使用します。
    • VBAでは Select Case 構文を使用しますが、OpenOffice Basicでは Select Case...Case...Case Else...End Select を使用します。
  4. ループ構文:
    • ループ構文において、VBAでは For...NextDo...LoopWhile...Wend を使用しますが、OpenOffice Basicでは同様の構文を使用しますが、NextLoopWend などのキーワードがVBAとは異なります。
  5. オブジェクトモデルの差異:
    • VBAとOpenOffice Basicは異なるオブジェクトモデルを持ちます。そのため、オブジェクトの操作方法やプロパティ、メソッド名が異なる場合があります。
    • 例えば、VBAでは WorkbookWorksheet オブジェクトがありますが、OpenOffice Basicでは SpreadsheetDocumentSheet オブジェクトに相当するものがあります。

これらの違いを考慮しながら、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を削除しないといけない。

詳しくは

を参照せよ。

※ 編集用[編集]

※ 内容がまとまったら、サブページを作成して分離のこと。