<Access>基本からVBAまでまるわかり!独学時に使える参考書

【Access】if文が複数入っているコードの考え方は『サンドイッチ』

スポンサーリンク
アクセス【Access】

Accessのif文を使っていて、あれ?イベントの発動がおかしいなぁと思ったり、elesが多過ぎてどことどこで挟んでいるのか訳が分からなくなったりしませんか??

selectcaseを使えばいいのかもしれませんが、ifが好きなんです(笑)

ifを多様しすぎて、elesとendifがどこのifからきているのかわけがわからなくなってしまうことが多々あるので、今日はそんな時の考え方のお話です。

スポンサーリンク

ifの中にifを使うことを『ネスト(入れ子)』という

if文の中にifをまた入れたりすることを『ネスト』や『入 れ子』とか呼んだりします。

ネスト(入れ子)とは??

ネストとは、構造化プログラミングにおいてプログラムを構築する手法の一つで、あるルーチンやデータブロックの中に、別のルーチンやデータブロックがはめ込まれることである。入れ子構造とも呼ぶ。ループ文の中のループやルーチン内でにサブルーチンコール、関数呼び出しの引数に関数呼び出しを使うこと、コメントを含む文全体のコメント化など、多くの種類がある。

出典:IT用語辞典-Weblio辞典-

どんな例があるのか実際に私が作ったif文をご紹介します。

if文はとても便利な関数ですが、私のように入り子をして多用しすぎるとどこの部分のifをしめているかわからなくなってしまいます。

その時の考え方として大切なのは『if文のしめは外から挟むようにしめる』ということです。

文章説明が下手なので分かりにくいかもしれませんので、色を付けてみたいと思います。

簡単なイメージだとこんな感じです。

スポンサーリンク

上記if文の意味(解説)

最初の青い部分のIfは商品リストQのバーコードフィールドが空欄かどうかを確認しています。

次の緑の部分は『管理者用商品リスト』を作成していいのか、ダメなのかを聞いています。

最後のピンクの部分は商品リストにデータそのものがあるかないか(0件かどうか)を判断しています。

 

スポンサーリンク

まとめ

if文がたくさん出てきて分かりにくいVBAコードも『サンドイッチ』の考え方でわかりやすく分解することが出来ます。

コードが長すぎて訳が分からなくなった時に立ち止まって『サンドイッチ』で考えてみてください。

最後までお読みいただきありがとうございました。