かっきぃーの雑記帳

おもしろき こともなき世を おもしろく

とりあえず使えるエクセルユーザーフォーム超入門 / 複数のユーザーフォームで変数を共有する パブリック変数(Public)

Lesson3 これだけは覚えておきたい基本機能

複数のユーザーフォームを組み合わせて使用するようになると、前段階のフォームで入力内容を次のフォームの初期値にするなど、データを共有する必要性が高まってきます。

しかし、フォームが変わるということはプロシージャ(Sub ~ End Sub)が変わることであり、通常は変数が受け渡しできません。そこで、あらかじめパブリック変数という、プロシージャの壁を越えて、データをやり取りできる変数を定義することが必要です。

以前紹介したDim関数はローカル変数といい、プロシージャが終了すると変数もクリアされます。

k-create.hatenadiary.com

 

このDim関数をプロシージャの外に出し、モジュール(プロシージャの書かれているシート)の先頭エリアに独立して書いたものをモジュールレベル変数と呼びます。こうすると同じモジュールの中であれば、プロシージャの枠を超えて、変数を共有することができます。

モジュールには「フォームモジュール」「標準モジュール」「シートモジュール」などがありますが、そのモジュールの枠をも超えるのがパブリック変数です。定義する場所はモジュールレベル変数と同じで、異なるのはDimの代わりにPublicとすることです。

このようにパブリック変数を定義しておけば、データのやり取りが可能となります。
ただし、不必要にパブリック変数とすると、いらぬバグを誘発する恐れがあるので最低限の変数のみを対象とし、かつ、パブリック変数であることが分かりやすい変数名とすることをおススメします。

f:id:k_create:20180924020828p:plain

 

[次回公開]選択肢リストを配置する コンボボックス(ComboBox)

                9 

とりあえず使えるエクセルユーザーフォーム超入門(もくじ)

 

スポンサーリンク