見出し画像

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

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

 

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

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

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


こんにちは。伊川(@naonaoke)です。

以前、コンボボックスを利用しないで、連動した値を取得する方法を紹介しました。

コンボボックスを作成したほうが楽だとは思います。

しかし、配列の勉強もかねて、ユーザーフォームで作成しました。

下記の記事を参照してください。

 

クラスモジュールは、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 ユーザーフォームでの処理

どのCommandButtonクリックしても、TextBox1に反映するようにします。

今回は、CommandButtonが、8個しかないですが、これが、もし、CommandButtonが100個あったら大変ですよね。

 

コピペでも大変です。

同じコードは二度書くなと言います。

1行、2行なら、だれでもできます。

100個あったらどうしようと、考えましょう。

そうすると、効率よくコードを記載しようと思ってきます。

 

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

ユーザーフォーム上のCommandButtonは、cmdというもので、管理されます。

cmd にclという変数を代入します。

これは、後で、ユーザーフォームに、出現します。

 

そして、cmdをクリックしたら、TextBox1に、各、CommandButtonのCaptionを書きだせと記載しています。

 

 

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

ACCESSのクラスモジュールと同じなのですが、UserForm_Initializeは、ACCESSにはありません。

この辺が、少し、ACCESSとExcelの違いですね。

要するに、CommandButtonという、タイプに関ては、

clで設定した、インスタンスを発生させます。

つまり、CommandButtonをクリックしたら、Captionを書き出せというイベントです。

 


ここがポイント


一括でなにかしたいと思ったら、クラスモジュールを思い出しましょう。

仕切りが高いと思うのは、利用したことがないからです。

コード眺めて、こんなコードを書くんだと思えば、それで十分です。

最初は、結構難しいけど、このような初期設定をしておくと、本当に、楽になります。

 

 

まとめ


2年半くらい前に、YouTubeの、ご視聴者様から、クラスモジュールについて質問を受けました。

当時の私は、スキルがなく回答できませんでした。

そこから、クラスモジュールは、たい焼きから始まり、瞑想するとこになるのです。

しかし、コツコツやればできます。

コツコツね。

今回も最後まで読んでいただき、ありがとうございました。

サンプルファイル

私のホームページでも販売しています。このようなファイルは、全部で、300ファイル前後ありますが、総ダウンロード数は、10,000件を、超えました。10,000件超えてから、面倒なので、カウントしていないです。

勉強したい方、会社の実務で利用したい方にお勧めです。

はっきり言いますが、ネットで調べる時間を考えたら、購入したほうが、時間の節約になります。

まして、ネットのコードは、作動するとは限りません。

料金は、200円です。

ここから先は

67字

¥ 200

期間限定 PayPay支払いすると抽選でお得に!

よろしければサポートをお願いします。いただいたお金に関しては、書籍の購入に充て、より良い情報を皆様に提供します。