| |
"凄く"というわけでも無いけど、"適当に"ヒマなんで(笑)
If Left$(.Formula, 4) = "=SUM" Then
は、S列最終入力行の数式が「=SUM」で始まっているなら、未だ列全体の合計を
出して無い、とみなしてその1つ下のセルに「=SUBTOTAL」で始まる数式を
入力せよ、というコードです。その際、SUMの数式はR1C1で入力されているようなので、
SUBTOTALも参照形式を合わせて R1C1 にしています。
もちろん最終入力行に SUBTOTAL が入っていれば、何もしないで終了することに
なりますが、それはそちらの =SUM数式を入力するためのマクロ次第、ということ
です。例えばそのマクロが
Range("Q1", Range("Q65536").End(xlUp)).Offset(, 2) _
.FormulaR1C1 = "=SUM(RC[-3]-RC[-1])"
などとしていれば、もし現在のS列の最終入力行を超えて =SUM の式が入力された
場合、SUBTOTALの式は自動的に消えます。そして新たな列の最終入力行の数式は
=SUM で始まることになるので、次回からは
If Left$(.Formula, 4) = "=SUM" Then
の条件に合致するわけです。
お分かりいただけましたか ?
|
|