pickup

クラスモジュールを利用して、システムを作成していると、とても、楽しくなってきます。

イベントの処理が、一括で、出来るからです。

そのコツを、少しだけ紹介します。

目次

スポンサーリンク

クラスモジュールの書き方のコツ

 

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

 

以前に、個人情報漏洩、誤登録防止のため、コピペしかさせないとう記事を書きました。

 

その直後に、同じコードは、2度書くなという記事も書きました。

 

矛盾だらけのブログになっています。

 

ACCESSのフォームでは、イベントを発生させることが多いですね。

 

しかも、大抵、発生させるインベントは、共通事項が多いですね。

 

例えば、個人情報で、貼り付けしかさせないと言えば、

 

代表的な個人情報

名字

名前

電話番号

携帯番号

性別

郵便番号

住所

マンション名

 

 

この8項目くらいですか。

 

では、この8項目のテキストボックスに、すべて、コードを書き込むのかという話になります。

 

以前紹介したコードは、3行なので、24行のコードになります。

 

 

良いコードは、8行以上15行未満です。

 

たった3行のコードでも、8項目もあれば、結構な行数になりますね。

 

 

何度も言いますが、左辺と右辺を比べて、同じような処理であるならば、改善ができます。

 

そのコツを紹介します。

 

スポンサーリンク

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

今回のテーマ
  • ACCESSVBAを、勉強している人
  • クラスモジュールを、勉強したが、使い方がわからない人
  • クラスモジュール利用することで、ワクワクしたい人

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

このブログの結論
どの、ブログよりも、わかりやすく解説します。
しかし、本当の、クラスモジュールの利用方法では内容です。
ACCESS、Excelのクラスモジュールは、一括イベントの管理と考えましょう。

 

スポンサーリンク

クラスモジュールの書き方のコツ

クラスモジュールに関しては、書き方というよりは、コピペをしないで、

時間がかかっても、10回くらい書いてみましょう。

そうすると、感動が生まれます。

Naosuke

なぜ、?

インテリセンスが使えるからです。

 

 

結構な感動です。

Private Sub テキスト4_KeyDown(KeyCode As Integer, Shift As Integer)

End Sub

 

これは、ACCESSのフォーム上で、キークリック時に発生するイベントです。

多分ですが、テキストボックス4を、クラスモジュールで、どのように表現するのかが、理解できないと思います。

そうです。

テキスト4と記載してしまえば、そのイベントは、テキスト4にしか、発生しないからです。

また、KeyDown(KeyCode As Integer, Shift As Integer)

クラスモジュールで、どう書くの?ってなりますよね?

この辺の疑問を解決します。

クラスモジュールの書き方のコツ 作業手順 その1 イベントの種類は、Onに属する

このように、イベントが集約されています。

ここで、すでに、もう感動です。

ただ、OnClickのように、先頭にOnが付いています。

Onには、その一員、属しているという意味がありますね。

 

私はその委員の一員だ。

I am on the committee.

 

こんな感じです。

つまり、Onがイベントを集約していると考えました。

クラスモジュールの書き方のコツ 作業手順 その2 対象物は、代名詞に置き換える

 

 

クラスモジュールを、勉強していて、思ったのは、勉強している言語は、

VBAであれ、Javaであれ、英語ですね。

つまり、日本語の知識のみで、極めようと思うのが、無理なのです。

Taro has a bag

Taro’s bag is red

こういう、書き方はしないですよね。

つまり、His bag is red となりますよね?

 

Taro’s bag⇒VBAで言えば、Range(“A1”)=”red”こんな感じ

His bag⇒VBAでいうなら、Cells1,1=”red”こんな感じ

ここで、変数、つまり、英語で言うところの代名詞が、出てきます。

大量の処理を、行うための技ですね。

でも、これは、主観ですよね。バックの色が、赤って感じるのは。

だから、クラスモジュールと、今回で言えば、フォームモジュールに、共通の代名詞が必要なのです。

英語でいうなら、theが付くのです。

Look at this the fucking gay ⇒ 見ろ、いかれた野郎だ!

この、いかれた野郎は、話し手、聞き手の、共通認識ですよね。

ここが重要です。

クラスモジュールと、フォームモジュールの共通の、the fucking gayを作成します。

では、今回のthe fucking gay は、myCtrlになります。

クラスモジュールの書き方のコツ 作業手順 その3 クラスモジュールのコード

今回は、テキストボックスにたいして、イベントを発生さます。

その際に、initで、一旦初期化をします。

そして、tbに関して、myCtrlを設定するのです。

myCtrlは、クリックしたときにイベントが発生します。

そう、paste,enter,backspaceしかできないようにします。

 

クラスモジュールの書き方のコツ 作業手順 その4 フォームモジュール

myCtrlを、Collecitonにセットします。

その、Collecitonの中をFor eachで検索してします。

適用になるのは、テキストボックスの先頭に、Ptxtと、冠が付いているのもだけに適用になります。

24行のコードが、10行のなりした。

ここがポイント

 

ここがポイント
Function8.png
今までは、一生懸命、24行のコードを、これでもかと思いながら書いていました。
しかし、本当に、無駄でした。
ちなみにですが、空白判定は、空白か、空白ではなかという、戻り値が帰ってきます。
戻り値は、空白判定を行った結果ですね。
だから、空白判定は、Functionを利用したほうが、効率的と思っています。
動画とブログでわかりやすくExcelとACCESSを紹介しています

まとめ

 

2週にわたり、クラスモジュールを、紹介しました。

またの機会になると思いますが、もっとサンプルコードはありますが、一旦この辺で、終了したいと思います。

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

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

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

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

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

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

 

スポンサーリンク

Twitterでフォローしよう

おすすめの記事