|
▼アキさん さん:
こんにちは
原因がわかったような気がします。とりあえず原因のみ申し上げます。
たとえば2ページ分だけのシートを以下のように作成します。
・1ページの最後の5行と2ページの最初の5行を結構させます。
・2ページ目は最後の行の前までにデータを入れた状態にしておきます。
・で、その2ページ目のデータが入っている最後の行の10行ぐらいを結合させます。
このシートでご提示のコードを実行しますと、最後の結合セルが2ページ目と3ページ目に
またがり、ページブレークされませんね。
原因
処理を開始する際の HPageBreaks.Count は 1 です。従ってループは1回だけ。
もともとの最初のページブレークのところのみを判定します。
で、ページのまた借りがあるので、結合セルの前にページブレークを挿入しますね。
この時、2ページ目の開始行が上方にシフトされており、もともと2ページしかなかったのですが
最後の結合セル部分が3ページ目にまたがります。でも、この(あたらしく出来上がった)
3ページ目のページブレークは、上記で申し上げたように、最初のカウントには入っていませんので
チェックされないということになります。
結果として最後の部分がなきわかれということになりますね。
コードでどう対応するかは、この後、試してみて、できあがればアップします。
|
|