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

変数を明示的に宣言する

新規作成日 2017-12-14
最終更新日

変数を明示的に宣言する

厳格な型を持つ開発言語は、変数の型指定をすることで、エラーを実行前に確認することができます。LibreOffice Basicでは、型指定を強制する「Option Explicit」キーワードを使用して、型指定を強制することができます。「Option Explicit」キーワードは、すべての Basic モジュールに記述する必要があります。

変数を明示する場合、Dimステートメントを使用します。

一般的な構文は以下の通りです:

Dim VarName [As Type][, VarName [As Type]]...

変数型を指定しないと、 OpenOffice Basic はバリアント型として変数宣言を行います。

Dim MyVar

変数型を指定して、変数を宣言する場合、「Dim … As ...」を使用します。

Dim MyVar As Integer 

変数型は、接尾辞を用いても表現できます。接尾辞は、変数名の一部になるので、使用する際は、接尾辞も合わせて記述する必要があります。「%」はIntegerの接尾辞です。

Dim MyVar%

マーカー

マーカー とは、変数、定数、関数などの名前のことです。マーカーの記述規則は、LibreOffice BasicとVBA では、異なります。

VBAとは異なり

LibreOffice Basicでは、日本語の変数は、そのままでは宣言できません。

LibreOffice Basicで、日本語の変数を使用するためには、「Option Compatible 」キーワードを指定する必要があります。

  • マーカーに使える文字は、アルファベット、数字、下線記号 (_) だけです。
  • マーカーの先頭は、アルファベッドか下線記号で始める必要があります。
  • マーカーの長さは、最大 255 文字です。

変数の有効範囲

変数名は、一意、つまり、同じ変数名が存在しない必要があります。他の変数と区別できないと、どの変数を使えばいいか判断できずにプログラムが実行できません。しかし、プログラムを流用する場合、同じ変数が使われている可能性が高くなります。プログラムを流用する際、変数名の変更すル必要があると、プログラムの流用が困難になります。そこで、どの開発言語でも変数の有効範囲を限定し、変数名を重複しにくくする仕組みが必要になります。

変数名を重複しにくくする仕組み

  • 名前空間
  • 変数の有効範囲

ここでは、変数の有効範囲について確認します。

ローカル変数(局所変数)

関数や手続きの内部で宣言された変数は、局所変数と呼ばれます。 局所変数は、該当する関数や手続きの外側からは、利用できないだけでなく、実行が終了した段階で消去されます 。

Sub Test
  Dim MyInteger As Integer
  ' ...
End Sub

以前の呼び出し時に代入された変数を呼び出されるたびに利用する場合、変数を Static として定義しておく必要があります。

Sub Test
  Static MyInteger As Integer
  ' ...
End Sub

Documentation note.png VBA とは異なり、Apache OpenOffice Basic の局所変数には、モジュールヘッダにある大域変数やプライベート変数と同じ名前を付けることはできません。

パブリックドメイン変数

モジュールのヘッダセクションで Dimステートメントを使って、変数を定義すると、パブリックドメイン変数として定義されます。

パブリックドメイン変数は、ライブラリ内の全てのモジュールで利用できます。

Dim A As Integer
Sub Test
  ' ...
End Sub

パブリックドメイン変数の宣言用キーワードには、Dim の代わりに Public も使用できます。

Global A As Integer

グローバル変数(大域変数)

グローバル変数は、パブリック変数と同等の機能を担っていますが、該当するマクロの実行終了後もその値が確保され続ける点で異なります。

グローバル変数は、モジュールのヘッダセクション(一番上)でキーワード Global を使って定義します。

Global A As Integer

プライベート変数

Private 変数は、定義されたモジュール内部でのみ有効となります。プライベート変数の定義には、キーワード Private を使用します。

Private MyInteger As Integer

複数のモジュールで同じ名前の Private 変数が使われている場合、Apache OpenOffice Basic では、これらの変数はそれぞれ個別の変数として確保されます。

定数

定数は、プログラムで使用する変更しない値です。

Apache OpenOffice Basic で定数を宣言するには、キーワード Const を使用します。

Const A = 10

宣言時にデータ型を指定することもできます。

Const B As Double = 10

モジュールヘッダで使用すると、そのモジュールのどこからでも参照できます。 また、キーワード Public を追加しすると他のモジュールからも参照できます。

参考

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