Libreoffice Calc マクロ"Basic言語" 基礎の基礎 メモ2

初めに

前提条件はLibreoffice Calc マクロ"Basic言語" 基礎の基礎 メモ1を参照ください。
今回は変数(Global、Public、Private)について です

Global、Public、Private変数について

変数はGlobal、Public、Privateがあります。
モジュールを作成しそれぞれの働きを確認します。
簡単なプログラム?を書き、デバックモードで実行して変数の値を確認することで何が違うのか確認します。

モジュールの作成

プログラムはモジュール内に書きます。
モジュールを作成するにはモジュールエディタにて「ツール」-「モジュールの選択」でBasicマクロ管理を起動します。

Basicマクロ管理にて「無題1」-「Standard」を選択し"新規作成"ボタンを押します。

作成するモジュール名を入力します。

上記を繰り返してModule1とModule2を作成します。

プログラム(?)の記述

Module1

REM  *****  BASIC  *****

Sub Main
 Module2.glValue = 1000
 Module2.pbValue = 2000
 Module2.prValue = 3000
 MsgBox "Main"
 Module2.glValue = Module2.glValue + 10
 Module2.pbValue = Module2.pbValue + 20
 Module2.prValue = Module2.prValue + 30
End Sub

Modue2

REM  *****  BASIC  *****

Global glValue As Integer
Public pbValue As Integer
Private prValue As Integer

Sub Main
End Sub

変数の登録

デバック時に変数の値を登録するには
「オブザーバー」右のボックスに表示したい変数名を入力しEnterキーを押すことで表示できます。

文書オブジェクトを見たい場合は、「ThisComponent」を入力することで確認可能です

確認1

  • Module1の7行目にブレイクポイントを設定します。(7行目にカーソルを置いて実行ボタンの右5つ目の赤丸のボタンを押します)

  • 実行すると定義した3つの変数に値が設定されます。

値が設定されたことを確認したら、再度実行ボタンを押しMsgBoxが出たらOKを押して本関数の実行を終了します。

確認2

4行目にブレイクポイントを設定し、実行します。

4行目でプログラムが停止している状態です。
変数値を見ると確認1で実行した時のグローバル変数だけ値が残っています。変数値から次のことがわかると思います。

  • Global変数はプログラムの実行が終わっても、(文書を閉じなければ)その値を残す(→1010 : 1回目の実行値が残っている)

  • Public変数とPrivate変数は実行の都度初期化され、働きは同じ。

  • Privateはその働きをしないので、プログラムはGlobalとPublicを適切に選んで書けば良いと思う。

Global変数の用途はボタンを押したらID番号発行みたいなことが出来そう(工夫は必要)です。マイマクロに変数を置けば複数文書にまたがったID番号発行処理も頑張ればできるかもしれない。


最後に

  • 次回は(未定)

その3に続く

#Libreoffice #Calc #Basic

この記事が気に入ったらサポートをしてみませんか?