.Offset(1, 0)で結合セルを飛ばせるのにビックリ
だけど、
.Offset(2, 0)だと、飛ばせないのにガックリ。そんなお話です。
人力検索の質問
http://q.hatena.ne.jp/1276505613
エクセルVBAについて、アップした図もご覧ください。
結合セルの並びを移動する場合、ループを使用して下記のようにすれば
セル範囲を、結合セルの塊ごとに移動することができます。
・
・
を見て
結合セルを作り、テストしてみました(回答、代案が無いんだけど...)
Sub test1() Debug.Print Range("a1").Offset(1, 0).Address Debug.Print Range("a1").Offset(2, 0).Address Debug.Print Range("a1").Offset(3, 0).Address Debug.Print Range("a1").Offset(4, 0).Address End Sub Sub test2() Debug.Print Range("A1").Offset(1, 0).Address Debug.Print Range("A1").Offset(1, 0).Offset(1, 0).Address Debug.Print Range("A1").Offset(1, 0).Offset(1, 0).Offset(1, 0).Address Debug.Print Range("A1").Offset(1, 0).Offset(1, 0).Offset(1, 0).Offset(1, 0).Address End Sub
すると、(test1)
Range("a1").Offset(1, 0).AddressはOK(期待通り結合セルを飛ばせるけど)
Range("a1").Offset(2, 0).Addressが違う値(結合セルを2つ飛ばした期待した値が受け取れない)
苦肉の策で(tset2)、
Range("A1").Offset(1, 0).Offset(1, 0).Address
と.Offsetを連続にするとそれなりの結果・OKだけど、なんだかなぁ。
※あるシステムで10個下の時は、、、現実的じゃないよね。。。
※まぁ、可変で結合されているセルがあまり無いかもしれないけど。2行単位で規則的はよくあるけど、可変の行で結合はあまり無いのかなぁ。。。
下記、テストで試行錯誤した動画です(いつものダメっぷりを笑ってゆるしてね)
テスト動画を入れる
http://www.youtube.com/watch?v=WHJWXlXpZhI
http://www.youtube.com/watch?v=WHJWXlXpZhI:embed:cite:h380
Excel2003のバグ?優秀なExcelチームのテスト不足なのかなぁ?とも思いつつ、人力検索の他の人の回答に期待してたり。
※検証動画まで作って自分の勘違いだったら怖いけど・・・
Excel2003のファイルは http://www.ken3.org/vba/zip/test2010-06-15.html に置いておきます。※今回はあまり使わないと思うけど