VBAのスケジュール表自動作成でSEやプログラマーのすごさを垣間見た気がした

デバッグとエラー処理

システムをつくるとなると、様々な状況を想定してデバッグやエラー処理も必要になってきます。自分は今まではプログラムは作ったら作りっぱなしで、その後「不具合が出たらどう処理するか」までは全然考えていませんでした。こういった面でも本書は勉強になります。

 

『VBAエキスパート公式テキスト Excel VBA スタンダード』ではデバッグやイミディエイトウィンドウなど簡単にしか説明されていないのですが、『続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本』では具体的にどういった場面でどの機能を使えばいいのかが書かれています。

 

「おっ」と感じた部分もたくさんあったのですが、その中のひとつがウォッチウィンドウを使う時にコードには記述されていないウォッチ式を追加して値を確認できる、といったものです。

 

説明するのは難しいのですが、実際の論理エラーを想定してそういった時はどうすればいいのかが詳しく書かれており、興味がある方は本書を見ていただければと思います。

 

本書はスケジュール表自動作成のエラー処理についても書かれています。その考え方として「自分がシステムをつくってもユーザーが意図通りシステムを使ってくれるとは限らない。時にはこちらが全く想定していない使い方をするかもしれない。そうなった時のためにも何らかの処理を準備しておく必要がある」といったものです。

 

確かに言われてみればそうだなぁと思いました。別にいたずらするつもりはなくても、何かの拍子で手が滑ってとんでもない数値を入れてしまったり、気づかずに全然違う値を入れてしまうという状況はあり得ます。

 

そうなった時のためにどんな対応方法が書かれているのかというのが本書のエラー処理の部分です。この部分もVBAで配列では対応できない場合はTypeステートメントを使う方法もある、といったことが書かれており学べる部分がたくさんあると感じました。

フォームモジュールやFunctionプロシージャの活用

『続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本』の中の一番の見所はたぶんここだと自分では感じています。第5章の「フォームから期間とデザインを指定可能にしよう」という所です。

 

VBAとかプログラミングと聞くと、単純に業務の自動化、ボタンを押したら何らかの処理が自動で行われるといったイメージがありますが、VBAにはそれだけではなく「フォームの作成」ができる機能があります。これがVBAの幅を広げているとも言えると思います。

 

この第5章ではフォームを使ってスケジュール表自動作成の開始日と終了日の設定、休日祝日のセルにどの色を使うかの選択などを設定できるようにしていくのですが、この部分ではどのようにコードを入れていくのかがすごく勉強になりました。

 

例えばこのフォームにこのコードを入れたらAという処理が実行されて、別のフォームに入れたBというコードはCに数値を入れたら処理が実行されるといった具合に、「処理がいろんな所を飛ぶ」のが、「あぁなんかシステムっぽいなぁ」と感じました。

 

会計ソフトとか実際に企業内で使われるようなシステムもおそらくこんな感じなのではないでしょうか。

 

本書の第5章を読んでいておもしろいと思ったのは、VBAで用意されているコンボボックスとかスピンボックスなどのフォームを使うだけではなく、「既にある色を選択できるダイアログボックス」なども利用できる点です。

 

これはエクセルの画面の上にあるリボンから手作業で開くのではなく、ちゃんとVBAでのコードを利用することで開いたり使えたりするのです。「あぁそういったやり方もあるのかぁ」とVBAとかエクセルというものが自分の中ですごく可能性というか使い勝手が広がっていくような感じがしました。

ワードプレステーマで使われるモジュールテンプレートの数

ここまで書いてきたように『続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本』を読むことで、システムというのはこんな感じなのかな、というなんとなくのイメージはできるようになってきました。

 

特にこのブログではワードプレスで「simplicity」というテーマを使っているのですが、システムの内部の構造までわかるものの中では身近にあるもののひとつです。

 

たぶんエクセルのVBAでコードを入力する場所としての「モジュール」にあたるものが、ワードプレスのテーマにおいて「モジュールテンプレート」というものに対応するのではないでしょうか。(間違えていたら許してください)

 

このブログで使わせていただいてるワードプレスのテーマが「simplicity」というものであり、わいひらさんという方が作成したものです。

 

で、その管理画面からカスタマイズ→テンプレートの編集でこのテーマで使われているモジュールテンプレートが100個程あります。親テーマとか子テーマとかいろいろ種類があるのですが、最も多いところでこのテーマを構成していると考えられるコードが書かれたモジュールが100個程あるということです。

 

何が言いたいかというと、本を見ながらではありますが実際にシステムをつくってみたことで、「simplicity」などの使いやすいテーマを作れるプロというのは本当にすごいと感じられるようになったのと、このレベルのテーマをつくるにはこれぐらいの規模のコードを書く必要があるんだなぁという点に気づいたということです。

 

今までの自分であれば、テーマの数とかモジュールテンプレートの数とか全然気にもとめていませんでした。

 

しかし、『続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本』を通して実際に自分の手でコードを入力していくことでその大変さに気づきました。だからこそこのブログのテーマのように、プロの方がつくるシステムがどれだけすごいのか、ということが少しですが理解できた気がします。

 

やっぱり実際に経験してみないとその凄さというのはわからないものです。もちろん全部を理解できたわけではありませんが。

 

コードの分量とかここにチェックマークをつけたらこのコードが反応してここに繋がってくるんだなとか、全然素人視点ではあるのですが想像を巡らせるとこれだけの複雑な構造を構築できる製作者の方というのはどれだけすごいのだろうか、と途方に暮れてしまいます。

 

以上のようなことからタイトルにもあるように、『続ExcelVBAのプログラミングのツボとコツがゼッタイにわかる本』を読んでみた感想と、本書を通してプログラマーとかSEとかその道のプロというのは本当に素晴らしいと感心したというお話です。

あわせて読みたい

こんな記事も読まれています

コメント