pickup

 

クラスモジュールを勉強していくと、長いコードが短くなる利点があります。

その前に、設計図通りに動くというのが、快感です。

 

目次

スポンサーリンク

同じコードは、2度書くな コードを短く書く裏技

 

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

前回、紹介した、ラーメン屋のオヤジが売上を集計するというネタを紹介しました。

しかし、ラーメン屋のオヤジから、改修の依頼が来ました。

 

メニューが増えた。

塩ラーメンを、豚骨塩ラーメンにしたい

月のメンテナンス料は、支払いしたくないので、自分で改修できるようにしたい。

 

ラーメン屋のオヤジの、要望を叶えることができるのか?

 

こんなシーンを想定してください。

 

あまり、親切にやると、それで終わってしまいます。

 

ほんとうに、完璧なシステムを作成するか

少しだけ、不親切に作成して、ミジカメ料を頂くか

 

運命の分かれ道です。

 

 

結論を言うと、クラスモジュールでコードを短くします。

 

前回紹介した、Collecitonや、カンタンな配列で、オヤジの要望をかなえます。

スポンサーリンク

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

 

今回のテーマ
  • VBAのコードを、組み合わせて、感動したい人
  • クラスモジュールを勉強している人
  • 配列を勉強している人

 

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

このブログの結論
コードの可読性が上がり、前回紹介したコードより、断然、コードの量が少なくなりました。
単純に感動できると思います。
論より証拠で、最後まで、読んでいただければと思います。
スポンサーリンク

クラスモジュールで、コードを短く

 

実務の中で、下記のようなコードを、書くことがあると思います。

TextBox1=1

TextBox1=2

TextBox1=3

TextBox1=4

TextBox1=5

TextBox1=6

TextBox1=7

TextBox1=8

 

処理内容は、右辺の処理だけが違うというシーンです。

これは、yahooの知恵袋で、見つけた回答ですが、回答が見事でした。

何度、この回答を、読み返したかわかりません。

全然、意味を理解できませんでしたが、勉強したいと思った瞬間です。

VBAのクラスモジュールは、本来のクラスモジュールと、利用方法が違うようです。

本来は、人のデータを管理するなど、以前紹介した、ExcelVBA 実戦のための技術が、王道です。

しかし、クラスモジュールを、利用することで、一括で、イベントを発生させることができます。

では、ラーメン屋のオヤジの要望を叶えます。

一括でイベントを発生 作業手順 その1 クラスモジュール作成前のコード

ライス、麻婆豆腐、野菜炒めが増えました。

以前は、各ボタンに、上記のコードを、記載しています。

ボタンは、全部で8個あります。

コードは、各ボタンにつき、7行

約、変数の宣言等も含めると、60行から、70行のコードを記載するということになります。

コピペを、利用して記載したとしても、ミスが発生しそうな予感です。

しかも、メニューが増える度に、VBEの画面を起動して、直さなければならない。

同じことは二度しないと、キモに銘じましょう。

 

こんな時も、即時対応できるようにしましょう。

この場合、ラーメン屋のオヤジの、オヤジがやることは、2つです。

オヤジのやる事

Captionを、塩ラーメンから、豚骨塩ラーメンに変更する。

MT_商品に、豚骨塩ラーメンの価格を設定する。

それすらも、できないなら、オヤジから、ミジカメ料をもらいます。

一括でイベントを発生 作業手順 その2 クラスモジュールを作成

これが、ラーメン屋のオヤジのための、設計図です。

一括でイベントを発生 作業手順 その3 フォームモジュールに記載する

このコードを、記載することで、どのボタンを押しても、

テキスボックスの、上から順番に入力されます。

コードの解説ですが、Staticを、初めて見る人もいるかと思います。

 

Static( スタァティィク)ステートメントは、変数のデータ型を宣言しメモリ領域を割り当てます。

プロシージャ レベルで使用します。

Static ステートメントで宣言した変数 (静的変数) の値は、プログラムが実行されている間をとおして保持されます。

 

Static以外は、どうでしょうか?

コードの可読性が、明らかに向上しています。

クラスモジュール、配列、Collecitonが絡んでいますが、意味を理解できない人は、いないと思います。

クラスモジュールも含めて、20行足らずで完了です。

一括でイベントを発生 作業手順 その4 空白まで転送

2行追加しました。

Excelで言うところの、最後までという書き方です。

ここでも、Nz関数が活躍しています。

テキストが、空白じゃなければ、レコードを追加しろと記載しています。

余談 作業手順 その5 売上管理

今回のように、メニューが増える、価格が改定になるというような場合があると思います
Q_売上を、テーブル化することを、おススメします。

なぜならば、価格は、オートルックアップクエリで参照しています。

価格を変更することで、過去に設定した料金も、価格改定の料金になるからです

その日の集計が完了したら、別テーブルに、売上を追加することを、おススメします。

 

ここがポイント

 

ここがポイント
Function8.png
クラスモジュールは、楽しいですね。
なせ、書籍化されないのか、なぜ、もっと、ネットに情報がないのか不思議です。
それは、クラスモジュールを知らなくても、出来てしまうからですね。
しかし、以前のコードと比べて、本当に、メンテナンスが楽になり、可読性が向上していると思います。
ここを、楽しいと思えば、VBAも、ACCESSも、もっと、もっと、楽しくなります。
動画とブログでわかりやすくExcelとACCESSを紹介しています

まとめ

 

今回は、勉強していて、楽しかったですね。

本当に、楽しかった。

クラスモジュールを知らなくても、実現できることは、わかっています。

ExcelVBA 実戦のための技術でも、言っていますが、動けばいいレベルのVBAを、卒業するために、この書籍を購入したのです。

第9章の関しては、もう、20回くらい読んでいます。

これからも、読み返すと思います。

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

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

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

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

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

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

初心者でも、すぐに、集計、プレゼンができるようになる。書籍だけの勉強は今すぐやめよう!
電子書籍で、AMAZON1位
専門のスタッフが、電話、チャットで完全サポート
大手パソコンスクールよりも、圧倒的な低価格
スポンサーリンク

Twitterでフォローしよう

おすすめの記事