Excelシート 印刷時の微妙なずれの調整

2001.11.15

Excelの印刷プレビューで余白ボタンを押し、余白の境界線を動かすと、0.1 きざみで調整ができる。
ところが、その値が同じであっても出力結果が異なることがある。
どういうことだろう?と余白を調整してみた。すると
 ・余白を調整し、ページ改行位置が変更になったが、設定値は変わらない
という事象が出た。原因はこれだろう。

こういう事象はVBAで解決することが可能だ。
VBAだと、0.1より細かい値を設定/取得することが可能である。

つまりは「画面UIでは四捨五入なりして調整した値を表示している」ということだろう。

もし、「余白を画面上でこの値になるよう調整する」という指示を出すのなら、そういうことも考慮する必要があるだろう。
印刷ページ数を取得する Excel編 Part1

2001.11.15

データベースのテーブル定義書を生成するツールを作った際のことである。それまでは手作業で作成していて、チェックのため数週間会議室を占有/数人を作業にあてがう、ということを毎年行っていた。
これを、データベース自身の定義から取得し、Excelの表にまとめていくツールを作成するようにした。
このときに見つけた問題。

納品物には通しのページ番号を振る必要があった。当初、Excelに標準であるフッタにページ数を付与する方法で対応しようとしていたが、うまくいかないケースがあった。その原因を追及した際のメモ。

---------------------

Excelで印刷プレビューをした後は、シート上に垂直/水平の改ページ位置が線で表示されるようになる。
この改ページの線の数のうち、印刷範囲のものは、シート名のプロパティで取得できる。
 [シート名].VPage  縦の改ページの線の数
 [シート名].HPage  横の改ページの線の数

1ページに収まる場合は VPage, HPage とも 0 になる。

よって、ページ数は
 ( VPage + 1 ) と ( HPage + 1 ) の積
で求まる、と書籍やネット等で紹介されている。

しかし、試してみると間違った値にあるケースがあった。

データベースよりレコードを取得し、その結果をExeclシートに貼り付け、そのレコードが出力された行まで書式を調整(罫線や行の高さ)するものを作ったことがある。

このとき、印刷プレビューをしたとき、ページからぎりぎりあふれないが、後ほんの少しであふれるぞ、というページがあると、上記の ( VPage + 1 ) と ( HPage + 1 ) の積 では想定より数字が大きくなることがあった。つまり、「実ページ数より計算されたページ数が大きい」という状態だ。


やむなくほかの方法を使ったのだが、それはこの記事の Part 2 にて紹介する。
Excelのファイルサイズが大きくなっていく対策

2001.11.14

Excel97においてVBAの修正を繰り返すと、ファイルサイズがどんどん膨らんでいく事象がある。
以下の手順で対応可能である
 ・Excel2002 SR2 以降でファイルを開く
 ・VBAを少し修正する(空白をひとつ削除、でもよい)
 ・保存する

なお、Excel2002 SR2 より前のバージョンで、VBAにてブックを開く/閉じるを繰り返すとリソース不足が発生したことがあった。メモリ管理も含め、Excel2002 SR2 以降は改善されたようだ。