DOBON.NET DOBON.NETプログラミング掲示板過去ログ

カレント行は何ページ目?

環境/言語:[Vista、VB2005]
分類:[.NET]

VB2005からExcelシートにデータを書き込んでおります。
シート内の各行の高さは不定です。

一行ずつ書き込んでいき、新しいページになった場合に
Excelの機能とは別の独自のヘッダーを書き込みたいのですが

カレント行の下に1行分のセルを追加した場合、
次ページになるかという事を検知する方法って有りませんでしょうか?

どなたか御指導下さいますよう、よろしくお願いいたします。
■No25502に返信(エドさんの記事)
> カレント行の下に1行分のセルを追加した場合、
> 次ページになるかという事を検知する方法って有りませんでしょうか?

一応、シートの HPageBreaks から調べることができるかと思います。
列挙した個々の HPageBreak の Location プロパティから、
改ページ位置の Range オブジェクトが得られます。


ただし 1 ページあたりの行数は、用紙設定と余白設定、縮尺率、
およびプリンターの印字可能領域などによって左右されます。

そのため、ある環境で40行印刷できたからといって、そのブックを
別環境に持っていって印刷すると39行目で改ページされてしまうといった
状況になる可能性もゼロではありませんので、その点はご注意ください。

# Excel の自動改ページに任せるのではなく、手動で改ページ位置を
# 設定した場合には、環境によるズレを多少軽減できるかも知れませんが…。
魔界の仮面弁士 様
いつも御指導有難う御座います

さっそく、HPageBreaksを試してみましたが。
Excelが自動で付ける改行位置は取得出来ないようです。
(間違っていたら御免なさい)

しかし、これで任意に改行を設定する事が出来るのですね。

行を追加後に行高さ合計がページ高さを超えたら、その行の前に
HPageBreakで改行とオリジナルのヘッダーを挿入するという事で
解決出来ました。

有難う御座います。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板