Top > Programmingとか > Office > ページ番号印字スペシャル

02 スペシャルの2

前回。

本家MSJPのサイトに[XL2002]印刷されるページの総数を調べる方法を見つけたところまでお話ししましたね。

てゅうわけで、今回はその続きです。



さてこのMicrosoft提供のサンプルコードを眺めてみると。

まず、データを入力している一番右下のセルをコード側から取得できるんですね。で、それが「$A$1」(シートの一番左上)でしかもそこが空っぽなら、"印刷するデータはありません。"ってことでひとつ。ってチェックロジックが入って。

ここまではおっけー。

それから、今度は縦方向と横方向の改ページ数をカウント。なるほど、シートオブジェクトの中にその情報をきちんと持っている、と。ただし、上記サンプルを実行する前に、改ページ位置のセルを画面に表示して、改ページ位置を認識 させる必要がありますなんて注意書きがあるところを見ると、画面表示かZoomOut→ZoomInのアクションの時にセットされる情報っぽいですね。

ExcelXPでVBAコードウィンドウに貼り付けて実際にやってみると、特にそんなことに気をつけなくともちゃんと動作しました。
たまたまそれっぽい操作をやっていたのか、XPではアクショントリガが変わったのかは把握していませんが、まぁとりあえずはいいかと。

ではページいっぱいを罫線で囲んで縁取りして、行タイトル指定してあるセルにこの関数を突っ込んでだめだ。

縦横に1ページずつ多い。

1ページ分しか作っていないのに、4ページと表示されてしまいます。ためしに2ページ分の罫線を引いてみると6ページと表示、縦横に2ページ分ずつ(つまり正解は4ページ)になるように罫線を引いてみると、9ページとの表示になってしまいました。

なぜだ。

ってんでもぅ一度サンプルコートを眺め直してみると。

縦横の改ページ数に、無条件に1足してます。

ページのぎりぎりいっぱいまでセルを使わないのがまぁメジャーケースですので、最後の改ページ位置のさらに下側(右側)にまだデータがあるだろぅと。
だから単純に取得した改ページ数に1足しちゃえと。

誰だこんなやっつけコード書いたの。
Microsoftか!?

いゃほんとにMicrosoftなんですけどね。

どぅもページちょっきり下隅とか右隅とかにデータとか罫線とかがあると、その下側(右側)に改ページができちゃうみたいなんですよ。

のでこのサンプルコードは、アイデアとしてはおっけーだけれども正常に動作しない場合があるといぅことで。よって却下。

ではどぅするかといぅと、

→また続くし。

トラックバック

このエントリーのトラックバックURL:
http://salv.miscnotes.com/mt/mt-tb.cgi/329

コメントを投稿