このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

【VBA】モジュールレベル変数の注意点

VBAではプログラムを記述する際、モジュールレベルで変数を定義することができます。

このモジュールレベル変数は、モジュール内のどこからでも参照ができるので、複数のプロシージャ間でデータをやり取りするのに便利です。

便利な変数ですが、使う上で1つ注意して欲しいことがあります。

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

モジュールレベル変数の中身は実行後も残る

モジュールレベル変数は、プログラムの実行が終了しても値が保持されることを覚えておく必要があります。

たとえば、次のようにモジュールレベルで変数を宣言したとします。

Option Explicit

Private counter As Integer

Sub IncrementCounter()
    counter = counter + 1
    Debug.Print "カウンターの値: " & counter
End Sub

このコードを複数回実行すると、counter の値は実行されるたびに増加していきます。

これは、counter が実行終了後もその値を保持するためです。

つまり、一度設定された変数は次に使用するまで同じ値を保持し続けます。

この挙動は一見便利に思えることもありますが、意図しない値の保持によって予想外の動作を引き起こすことがあります。

そのため、モジュールレベル変数を使用する際は、最初に値を初期化することが重要です。

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

created by Rinker
技術評論社
¥3,608 (2024/12/02 20:25:22時点 Amazon調べ-詳細)
VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい