見出し画像

【ACCESS VBA】同じコードは、2度書くな コード短く書く裏技

YoTubeでも解説しています。是非、ご覧ください。


 

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

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

 

同じコードは、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 クラスモジュールを作成

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

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

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

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

 

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

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

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

 

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

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

クラスモジュール、配列、Collecitonが絡んでいますが、意味を理解できない人は、いないと思います。クラスモジュールも含めて、20行足らずで完了です。

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

2行追加しました。

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

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

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

 

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

今回のように、メニューが増える、価格が改定になるというような場合があると思います。

Q_売上を、テーブル化することを、おススメします。

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

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

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

 

ここがポイント

 

クラスモジュールは、楽しいですね。

なせ、書籍化されないのか、なぜ、もっと、ネットに情報がないのか不思議です。

それは、クラスモジュールを知らなくても、出来てしまうからですね。

しかし、以前のコードと比べて、本当に、メンテナンスが楽になり、可読性が向上していると思います。

ここを、楽しいと思えば、VBAも、ACCESSも、もっと、もっと、楽しくなります。

 

まとめ           


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

本当に、楽しかった。

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

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

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

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

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

ファイル販売

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

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

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

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

料金は、200円です。

よろしくお願いします。

ここから先は

60字

¥ 200

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