役に立ちそうもないTips移転版

俺得なTipsを書き連ねるだけのブログ。

Excel: Offsetプロパティの罠

いわゆるExcel方眼紙で結合セル多用というのは残念ながらよくあるパターンで。
さて、各行A〜D、E〜F、G〜Jと結合されて見た目3つの横長セルが並んでいるように見えるシートがあったとする。

ここで
Range("A1").Offset(0, 1) → Range("E1")
Range("A1").Offset(0, 1).Offset(0, 1) → Range("G1")
ところが
Range("A1").Offset(0, 2) → Range("F1")
つまりOffsetの値が1であれば「見た目の隣」を拾ってくれるが、2以上だと中途半端な参照を返してくれやがるらしいorz

(2014/09/30 追記)
これに負のオフセットが絡むとさらにややこしくなる。
まず基礎知識。負のオフセットでは「見た目の隣」処理は行われない。
Range("F1").Offset(0, -1).Column → 5 (E)
Range("F1").Offset(0, -3).Column → 3 (C)
しかし
Range("F1").Offset(0, -3).Offset(0, 1).Column → 5 (E)
そしてもちろん
Range("F1").Offset(0, -3).Offset(0, 2).Column → 6 (F)
……ややこしすぎィ!orz