プロシージャースコープの変数は、既定ではプロシージャが終了すると変数が破棄されます。同じプロシージャを再び呼び出すと、新たに変数が用意されます。
そのローカル変数にStaticキーワードをつけるとプロシージャが終了しても破棄されずにその後も利用できます。Staticキーワードを付けて宣言する変数は静的な変数になります。一度用意されると破棄されずに残るためです。一方、Staticキーワードを付けずに宣言する変数は動的な変数になります。使用する時に用意され、処理が終わると破棄されます。
Static変数宣言の書式 |
---|
Static 変数名 As データ型 |
○ プロジェクト
次のようにプロジェクトを作成してください。今回は、Windowsフォームアプリケーションを作成します。
プロジェクトの種類 | Windows フォーム アプリケーション |
---|---|
プロジェクト名 | StaticTest |
○ デザイン
次の図のようにコントロールを配置してください。
○ プログラム
Buttonコントロールのクリック時の処理として次のプログラムを入力します。デザイナで配置したButtonコントロールをダブルクリックして、表示されるプログラムに記述をしてください。
○ 実行結果
○ 解説
5行目でStatic変数を宣言しています。初めて変数を利用する際に初期化され、2回目以降は初期化されずにそのまま使用することができます。8行目でStatic変数を1ずつ増やしていますが、このプロシージャが呼び出されるたびに増えていきます。もしStatic変数ではなく普通の変数であれば毎回毎回初期化されるため、何度このプロシージャを呼び出しても「0 + 1」の結果しか出てきません。
11行目では計算結果をボタンコントロールの見出しにセットしています。これにより、計算結果をボタンに表示して確認することができます。