- ExcelVBAの条件分岐を重ねたら階層が深くなってしまった
- 深くなった条件分岐の階層をどうにかしたい
- 条件分岐をシートで管理する事は出来ないのかな?
こんな悩みを解決します。
最後まで読んで頂き、実践して、ここへ来なくなった頃には、
あなたはスキルアップしている事でしょう。
さて、この記事の題目は
このサイトを運営している私は、
製造業での設計歴20年以上のエンジニアです。
Excelを使って業務効率化もしています。
記事にするまでの経緯
前編-1限目:「セル選択イベント」を使ってみたら
以下は、特定のセルを選択した際に自動的に処理を実行するコードです
1 2 3 4 5 6 7 |
Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$行$列" Then '処理 End If End Sub |
「セル選択イベント」と呼ばれるそうですが、例えば
B2セルを選択した際に、OKとメッセージBOXを表示させたい場合
標準モジュールではなく「シートモジュール」に記述しておく事で
B2セルを選択した際に、OKとメッセージBOXを表示する事ができます
ボタンを押す行為が無くなる事で、より動的な操作を可能にします
「おお!これで動くのか、できそうだφ(..)メモメモ」
私は仕事用のExcelツールに、これを組み込みたいと思い
サンプルを作成して、動作の確認も出来たので実装をました
「ああ・・・実装したいセルがいくつもあるから条件分岐を増やさないと」
「おお、動いた!・・・って凄い形態になったな・・・」
と、暫くそのままにしていました
前編-2限目:それ「ネスト」と言います
忘れたころに、コードを改修していたら発見して
なんだか面白いから、2022年1月25日にTwitterで投稿
意外と沢山の方から反応があり、驚きました
様々なアドバイスやご意見、大変ありがたく存じます
又、こんな表示が
初めてだったので焦りましたが、問題ありませんでした
今回は「ネスト」という「入れ子」が何階層にもなる事が注目された様です
これは、条件分岐の先にまた条件分岐が何階層も存在する
マトリョーシカの様な状態の事を「ネストが深い」と言い
「クソコード」と揶揄される事もあるみたいですが
畑違いの私にとっては、なんのこっちゃでした
さて、ここまではノンフィクションですが
ここからは、皆様から頂いたアドバイスを元に
改善ストーリーを記事にしてみましたので
読んでいただけたら幸いです
コメント