pickup

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を書き出せというイベントです。

ここがポイント

 

ここがポイント
Function8.png
一括でなにかしたいと思ったら、クラスモジュールを思い出しましょう。
仕切りが高いと思うのは、利用したことがないからです。
コード眺めて、こんなコードを書くんだと思えば、それで十分です。
最初は、結構難しいけど、このような初期設定をしておくと、本当に、楽になります。
動画とブログでわかりやすくExcelとACCESSを紹介しています

まとめ

 

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

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

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

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

コツコツね。

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

今回のサンプルファイルは、No285です。

毎日の業務が、3時間短縮できます

わからない事を延々と考えるのは、無駄です。

  • なんで作動かないの?
  • もうやだ!VBAなんか嫌い!
  • ネットで調べても情報がない!

必ず作動するコードが、ここにあります。

スポンサーリンク

Twitterでフォローしよう

おすすめの記事