回答受付が終了しました

ID非公開

2021/7/25 15:00

22回答

エクセルVBAのユーザーフォームのコードは、標準モジュールのように複数個作れないのでしょうか 1つのボタンごとに動作を書いていたらごちゃごちゃして長ったらしくなり、とても見にくくて困っています。

Visual Basic | プログラミング79閲覧xmlns="http://www.w3.org/2000/svg">500

回答(2件)

0

フォームモジュールのイベントプロシージャーのうち共通するものについてはクラスモジュールにまとめることができますが、私はお勧めしません。 VBAのクラスモジュールでは他の言語のように容易にオブジェクト指向プログラミングができません。扱えるイベントに種類が限られているなど色々と制約があり、その制約をクリアするためだけに余計な手間がかかります。 そういう手間が不要な場合はクラスモジュールを使う恩恵は大きいですが、 そうでない場合はフォームモジュールでの「ごちゃごちゃ」とは比較にならない程複雑なコードになってしまいます。 クラスモジュールの扱い方を熟知していないのであれば、冗長でもフォームモジュールに書いた方が安全で確実、効率的です。

あと、イベント処理を共通化する事とは別ですが、各コントロールのTagプロパティを活用すれば結構コーディングは簡潔になります。