VBAの静的変数について、静的変数使っていますか?



The following two tabs change content below.
アバター

taka

あることがキッカケでVBAを独学で勉強しました、今ではブログを通してVBAでできることを解説しつつ、VBAや他の言語の勉強、ブログ運営の勉強をしています(^^♪

どうも、taka(@takabou63)です(^^♪

さて、皆さんはVBAを扱う中で【変数】を使っていくわけですが、その変数の中に【静的変数】という変数があるのをご存知ですか?

VBAを独学で勉強されてきた方は聞いた事すらないかもしれませんね(*_*;

そんなわけで今回は静的変数とはどんなものなのか、静的変数の使い方などについて簡単に解説していきます(^^♪

VBAにおける静的変数とは?

通常変数はプロシージャの中で宣言した場合、プロシージャの処理が終えた時点でクリアされます。

このプロシージャを何回繰り返し使ったとしても返される値は【10】と【11】です。

ですが、プロシージャを終了しても、値を残しておきたい時ってありますよね?それを可能にするのが【静的変数】です。

この静的変数を知らない場合はExcelのシートなどに値を記述している方も多いと思います。ですが、この【静的変数】を使用することによってそれらを回避することができます!!

試しに下記のコードを複数回使ってみてください。

このように、プロシージャを繰り返しても変数がクリアされずに10ずつ値が加算されて行っているはずです。これが【静的変数】です。

静的変数を扱うには【Staticステートメント】

静的変数を扱うには【Staticステートメント】というステートメントを使用します(^^♪

普段変数を使用するときには【Dim i as long】のように宣言をしていますよね?

この【Dim】を【Static】に変えて使用することで静的変数を宣言することができます。

ですが、静的変数は宣言したプロシージャ内でしか使用することができません。なので下記のようにモジュールレベルの変数を宣言してもエラーになってしまいます

静的変数の値をクリア(初期化)する方法

さて、VBAで静的変数をクリアする方法はいくつかあります。

  • 対象のファイルを一旦閉じる
  • 新しいプロシージャを作成する
  • Endステートメントを使用する

まぁ対称のファイルを閉じるというのは、まぁそうだろうなと思われるかもしれませんね(笑)また新しいプロシージャを作成するというのも実用的ではありません。

なので1番実用的な方法なのは、Endステートメントを使用する方法です。

このようにEndステートメントを使用することにより、静的変数の値をクリアすることができます

IFなどで条件を指定することで狙った条件で静的変数の値をクリアすることができます!!

フォロー・チャンネル登録お願いします

■Twitterフォロー

■YouTubeチャンネル登録

ファイルやコードの利用、WEBサイトの利用について

サンプルコードなどは当サイトの免責事項をよくお読みになってからお使いください。

Sponsored Link

 

WordPressでブログを始めるなら

WordPress簡単インストール&安心の安定性

レンタルサーバー Xserver

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です