クソコードを修正するには
中編-1限目:「ネストが深い」を知る
ここは従業員100人弱の製造業である
元々VBAを使っているめがね後輩と、最近使い始めたアメビンは
空いた時間を使って業務用ツールを作っている
困ったアメビン
コードを改修していたら、凄い形態の発見したんだけど
やり方合ってる?
めがね後輩
おお・・・これは海物語の魚群リーチみたいですね
しかも左から右へ流れる「逆魚群」というプレミアです!
当選確定となります(`・∀・´)エッヘン!!
めがね後輩
・・・・冗談はさておき、この様な状態を
「ネストが深い」と言うらしいですよ(´・ω・`)
困ったアメビン
え?ネスト?なんそれ?
めがね後輩
業界では「クソコード」という分類に属するとか・・・
とりあえず段階的に修正をしていきましょう
中編-2限目:「ElseIf」と「End Ifの省略」を知る
めがね後輩
まずは「Else」と次の「If」のところは「ElseIf」とまとめられますよ
こうする事で「End If」は最後だけで済みます
困ったアメビン
なんだ~そうだったのか!
これで魚群リーチとはおさらばだね・・・
めがね後輩
あとは、処理が1つであれば「End If」は省略出来るんです
ついでに変数も組み合わせてみるとスッキリしますよ
困ったアメビン
ホントだ!すげぇ・・・
中編-3限目:「Select Case」を知る
めがね後輩
あ、そういえば「Select Case」って知ってますか?
条件分岐後の処理が複数ある場合は、こっちの方が見やすいかもしれません
めがね後輩
「Select Case」の後に目標を記述して
次の行に「Case」と、目標の値、その値の場合の処理を記述します
つまり目標が記述した値の場合にどうするかという事です
最後に「End Select」を記述します
困ったアメビン
「Case」だから「場合」って事か
この場合に、この処理をするってのは読みやすいね
めがね後輩
ちなみに「Target.Address」の後ろに「(0, 0)」を記述すれば
「”$行$列”」の「$」を省略できますよ
困ったアメビン
「$」ばかりで目がチカチカしたから、省略できるのも助かる
コメント