Home > コンピュータ > LibreOffice > マクロ

LibreOffice Basicのコンパイラ・オプション

新規作成日 2019-06-15
最終更新日

LibreOffice Basicで、マクロを作成する際に、利用が推奨されるコンパイラ・オプションを紹介します。

コンパイラ・オプションは、モジュールごとに指定できます。

コンパイラオプションとディレクティブ
オプション 説明
Def 変数名に基づいて、宣言されていない変数にデフォルト型を指定します。
Option Base 最初の配列の添字が、0か1であるかどうか制御します;指定されていないと仮定します。
Option Compatible Star Basicに、よりVBのようなふりをさせます。
Option VBASupport 1 Star Basicに、よりVBAのようなふりをさせます。
Option Explicit すべての変数を定義することを強制します。マクロの実行中に、まだ定義されていない変数が使用されると、エラーが発生します。

Def

コンパイラ・オプション 「Def」(Option はつけない)は、変数名に基づいて、宣言されていない変数にデフォルト型を指定します。

Base

コンパイラ・オプション 「Option Base」で、配列の最初の添字が、0から始まるか、1から始まるかを指定します。

  • VBAでは、1から始まります。
  • LibreOfficeでは、0から始まります。

Compatible

コンパイラ・オプション 「Option Compatible」を指定すると、そのオプションを持つモジュールは、Visual Basicとより互換性が高くなります。

また、実行時関数、CompatibilityMode(True/False)は、マクロの実行中に、ランタイム関数の動作を変更できます。

Option Compatible

違いの例(一部)

変数名

VBAは、有効な変数名として、Latin-1(ISO 8859-1)文字が使用できます。LibreOffceでは、利用できません。具体的には、VBAでは、変数名に、日本語が利用でき、LibreOffceは、英数字しか利用できません。コンパイラ・オプション 「Option Compatible」を指定することで、LibreOffceでも、日本語の変数名が利用できます。

rmdir()コマンド

  • VBAでは、指定されたディレクトリが空でない場合、エラーが発生します。
  • LibreOffceでは、指定されたディレクトリの中身ごと削除します。(エラーは発生しません。)

bounds (LBoundとUBound)を決定する関数

  • VBAでは、空の配列に利用するとクラッシュします。
  • LibreOffceでは、問題なく機能します。(エラーは発生しません。)

アクセス修飾子

PrivateとPublicのアクセス修飾子は、コンパイラ・オプションOption Compatibleが指定(あるいは、CompatibilityMode(True)を指定しないと機能しません。

コンパイラ・オプションOption Compatibleが指定(あるいは、CompatibilityMode(True)が使用されている)されている区別されます。

Option Compatibleを指定していない場合は、プライベート変数は。宣言しているモジュールの外側から見えてしまいます。

VBASupport

VBAで作成されたコードをLibreOfficeで実行するためには、マクロ(モジュール)の最初に、コンパイラ・オプション「VBASupport 1 」を指定する必要があります。

Option VBASupport 1 

Explicit

コンパイラ・オプション「Explicit」を使用すると、明示的に定義されていない変数を指定するとエラーが発生します。使用しない場合、コマンドのスペルミスは、変数として認識されるので、間違いがとても見つけにくくなります。コンパイラ・オプション「Explicit」の使用を推奨します。

Option Explicit

参考サイト

このエントリーをはてなブックマークに追加