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キーを押すことで表示できます。
確認1
Module1の7行目にブレイクポイントを設定します。(7行目にカーソルを置いて実行ボタンの右5つ目の赤丸のボタンを押します)
実行すると定義した3つの変数に値が設定されます。
値が設定されたことを確認したら、再度実行ボタンを押しMsgBoxが出たらOKを押して本関数の実行を終了します。
確認2
4行目にブレイクポイントを設定し、実行します。
4行目でプログラムが停止している状態です。
変数値を見ると確認1で実行した時のグローバル変数だけ値が残っています。変数値から次のことがわかると思います。
Global変数はプログラムの実行が終わっても、(文書を閉じなければ)その値を残す(→1010 : 1回目の実行値が残っている)
Public変数とPrivate変数は実行の都度初期化され、働きは同じ。
Privateはその働きをしないので、プログラムはGlobalとPublicを適切に選んで書けば良いと思う。
Global変数の用途はボタンを押したらID番号発行みたいなことが出来そう(工夫は必要)です。マイマクロに変数を置けば複数文書にまたがったID番号発行処理も頑張ればできるかもしれない。
最後に
次回は(未定)
その3に続く
この記事が気に入ったらサポートをしてみませんか?