>>913
致命傷は一点

・「C1が空白ならD1も空白」にしないといけないのにやってない
以下のコードで直した

・B1, C1 以外のセルが変更された場合でも無駄な処理が走る
重い処理じゃない。どうせ入力箇所増える
重いなら>>904の内容で修正するか再度聞けば良い

・Cells( ) と Cells( ).Value とバラバラ
どうでもいい
Cells( )はCells( ).Valueに解釈される
暇なら統一すれば良い。特に意味はない

・finalty という単語はない
どうでもいい
もちろんfinalityの打ち間違えは認める
変数名なんてなんでもいい

自己弁護でもないが、そのためにも関数やクラスは影響が最小限に済むように、短くまとめる必要がある