【Excel VBA】クラスモジュールを利用して、Excelでイベントを一括管理する

記事
IT・テクノロジー

YouTubeでも紹介しています。是非、ご覧ください。



ACCESSで、クラスモジュールを利用して、イベントの一括管理を紹介しました。
今回は、Excelで、クラスモジュールを利用して、イベントの一括管理を、行います。

クラスモジュールを利用して、Excelでイベントを一括管理する


こんにちは。伊川です。
以前、コンボボックスを利用しないで、連動した値を取得する方法を紹介しました。
コンボボックスを作成したほうが楽だとは思います。
しかし、配列の勉強もかねて、ユーザーフォームで作成しました。
下記の記事を参照してください。



クラスモジュールは、VBAにおいては、本来のクラスモジュールとは、違うということを、
ACCESSのクラスモジュールで紹介しました。
下記の記事を参照してください。


VBAでの、クラスモジュールは、イベントの一括管理と覚えてください。
また、ACCESSとでは、微妙に書き方が違いますので、是非、ACCESSのクラスモジュールと見比べてください。

このブログはこんな人にお勧め


クラスモジュールを勉強している人
クラスモジュールの適当なサンプルがない人
クラスモジュールが、全然、理解できない人

このブログを、読み終わるころには・・・・


私も、クラスモジュールが、なにか全然理解できませんでした。
しかし、コードを眺めることで、少しだけ理解できるようになりました。
単純なサンプルですが、是非、コード眺めて、理解するように努めてください。

Excelで、イベントの一括管理


ACCESSも、Excelも、イベントの一括管理は、WithEventsを利用します。
クラスモジュール作成のポイントですが、丁寧に考える事です。
丁寧というのは、1個、1個の変数が、つながるように考えます。
つまり、方程式を、解く感覚と同じです。
後は、Collectionを使って、記載するという感覚です。
下記の記事を参照してください。

Ecxcelでイベントの一括管理 作業手順 その1 クラスモジュールを利用するとき


Private Sub CommandButton1_Click()
TextBox1 = CommandButton1.Caption
End Sub
Private Sub CommandButton2_Click()
TextBox1 = CommandButton2.Caption
End Sub
Private Sub CommandButton3_Click()
TextBox1 = CommandButton3.Caption
End Sub
Private Sub CommandButton4_Click()
TextBox1 = CommandButton4.Caption
End Sub
このように、左辺が、TextBox1に対して、右辺の処理だけが変化する場合は、クラスモジュールを利用したほうが良いと思います。
当然、異なる利用方法もあります。
しかし、メルクマールは、右辺、または、左辺の処理が異なる場合です。

Ecxcelでイベントの一括管理 作業手順 その2 ユーザーフォームでの処理


1.jpg


のCommandButtonクリックしても、TextBox1に反映するようにします。
今回は、CommandButtonが、8個しかないですが、これが、もし、CommandButtonが100個あったら大変ですよね。
コピペでも大変です。
同じコードは二度書くなと言います。
1行、2行なら、だれでもできます。
100個あったらどうしようと、考えましょう。
そうすると、効率よくコードを記載しようと思ってきます。

Ecxcelでイベントの一括管理 作業手順 その3  クラスモジュール

2.jpg


ユーザーフォーム上のCommandButtonは、cmdというもので、管理されます。
cmd にclという変数を代入します。
これは、後で、ユーザーフォームに、出現します。
そして、cmdをクリックしたら、TextBox1に、各、CommandButtonのCaptionを書きだせと記載しています。

Ecxcelでイベントの一括管理 作業手順 その4 ユーザーフォーム


3.jpg

ACCESSのクラスモジュールと同じなのですが、UserForm_Initializeは、ACCESSにはありません。
この辺が、少し、ACCESSとExcelの違いですね。
要するに、CommandButtonという、タイプに関ては、
clで設定した、インスタンスを発生させます。
つまり、CommandButtonをクリックしたら、Captionを書き出せというイベントです。


ここがポイント


一括でなにかしたいと思ったら、クラスモジュールを思い出しましょう。
仕切りが高いと思うのは、利用したことがないからです。
コード眺めて、こんなコードを書くんだと思えば、それで十分です。
最初は、結構難しいけど、このような初期設定をしておくと、本当に、楽になります。

まとめ

2年半くらい前に、YouTubeの、ご視聴者様から、クラスモジュールについて質問を受けました。
当時の私は、スキルがなく回答できませんでした。
そこから、クラスモジュールは、たい焼きから始まり、瞑想するとこになるのです。
しかし、コツコツやればできます。
コツコツね。
今回も最後まで読んでいただき、ありがとうございました。

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す