Excelの印刷がずれる。同じ表で3枚から36枚まで変わった

2026-09-22Excelの使い方
印刷の設定を読むスクリプト(Python)をダウンロード

無料・登録不要 / 4KB / 版 1.0 / Python 3.9以降、openpyxl

印刷がはみ出すときに最初に触るのは、拡大縮小の横を1ページ、縦を自動にする設定だ。縦まで1ページにすると1枚に収まるが、300行では読めない大きさになる。

同じ表を設定だけ変えて数えたら、3枚から36枚まで変わった。用紙を横にすると、むしろ枚数が増えた。

印刷する前に見る順番。印刷範囲、横のはみ出し、見出しの繰り返し、手で入れた改ページを順に見る

以下の枚数は、Microsoft 365のExcel(バージョン16)で改ページの数から数えたものだ。確認日は2026年9月22日。Windows 11で、300行18列、列幅12の表をA4に印刷する設定で確かめている。

用紙を横にすると、枚数が32枚から36枚に増えた

まず何も設定せずに数えた。A4縦、標準の余白で32枚になった。横に4枚、縦に8枚だ。

用紙を横向きにすると36枚になった。横は4枚から3枚に減ったのに、縦が8枚から12枚に増えた。掛け算で増える。

300行18列の表をA4に印刷したときの枚数。横向きが36枚、そのままが32枚、余白を狭くして24枚、縮小率50%で8枚、横1ページで3枚

横向きは、横のはみ出しを減らすかわりに1枚に入る行数を減らす。列が多くて行が少ない表なら効くが、行が多い表では逆に増える。行数と列数のどちらが多いかで向きを決める。

余白を全部0.2インチにすると24枚になった。横が4枚から3枚に減って、縦は8枚のままだ。25%減るが、それでも24枚ある。

横だけ1ページに収めると3枚になる

拡大縮小で横を1ページ、縦を自動にすると3枚になった。32枚が3枚だ。

このとき、Excelは縮小率を自分で決める。保存したファイルを読むと53%と記録されていた。18列を紙の幅に押し込むと、そこまで縮む。

縦を自動のままにするのが要点になる。行は何枚に分かれてもよくて、横にはみ出さないことだけを条件にする。表の縦の長さは変わっても設定を直さずに済む。

縮小率を手で50%にしてみると8枚だった。横2枚、縦4枚になる。手で決めると、列が1つ増えたときに横が3枚に割れる。横を1ページと指定しておけば、Excelが縮小率を計算し直す。

縦も1ページにすると、1枚になるが読めない

縦も1ページにすると1枚になった。300行18列が紙1枚に入る。

入るだけで、読める大きさではない。Excelは入るところまで縮めるので、行が増えれば増えるほど小さくなる。1枚に収まったという結果だけ見て配ると、受け取った人が読めない。

この設定は、行が10行や20行の表で使うものだ。明細のように行が増える表では、縦は自動にしておく。

配ったスクリプトは、縦も1ページの指定になっているシートを見つけて知らせる。行が増えると字が小さくなる、と出す。

A4縦1枚に入るのは、列幅12なら6列

縮めずに何列入るかを先に知っておくと、表を作る段階で決められる。列幅を変えて数えた。

列幅 標準の余白 狭い余白
8 9列 10列
10 7列 8列
12 6列 7列
15 5列 5列
20 3列 4列

行はどの列幅でも39行だった。行の高さを変えていないので、横だけが変わる。

余白を狭くして増えるのは1列だけだ。列幅15では増えなかった。余白で1列稼ぐより、列幅を1つ詰めるほうが効く。

配る表を作るときは、この数から逆に考える。A4縦に縮めずに載せたいなら、列幅12で6列までにする。それを超える列数なら、縮小するか用紙を変えるか、列を減らすかの3択になる。

表を作ってから印刷設定で何とかしようとすると、どれかを我慢することになる。列の数は、表を作る前に決まっていることが多い。

印刷範囲が残っていると、途中までしか出ない

印刷範囲をA1:F50に設定した状態で数えると2枚になった。印刷範囲を消すと32枚に戻る。

一度設定した印刷範囲は、行を足しても広がらない。去年の表を写して今年の表を作ると、去年の範囲のまま残る。印刷したら途中で切れていた、という失敗はこれが多い。

見分け方は、ページレイアウトタブの印刷範囲を開いて、印刷範囲のクリアが押せるかを見ることだ。押せるなら設定が残っている。

配ったスクリプトでも、印刷範囲が残っているシートを名前ごと出す。ブックに何枚もシートがあるときは、こちらのほうが早い。

手で入れた改ページが残ると、枚数が増える

改ページプレビューで線をドラッグして調整すると、その位置が手動の改ページとして保存される。

横1ページに収めた3枚の表で、31行目と61行目に改ページを足した。枚数は3枚から5枚に増えた。ページレイアウトタブのすべての改ページを解除を押すと3枚に戻る。

手で入れた改ページは、行を足しても動かない。50行の表をきれいに2枚に割ったつもりでも、翌月に80行になれば中途半端な位置で切れる。

調整したくなったら、改ページを足すのではなく縮小率か余白を変える。どうしても切る位置を決めたいときだけ手で入れて、行数が変わったら入れ直す。

スクリプトは手で入れた改ページの数を出す。0でなければ、誰かが調整した跡が残っている。

2枚目から見出しが消える

縦に3枚に分かれる表で、1枚目にしか見出しがないと2枚目から何の列か分からなくなる。

ページレイアウトタブの印刷タイトルを開き、タイトル行に1行目を指定する。設定したあとで枚数を数えると3枚のままだった。この規模では枚数は変わらない。

行が増えて境目に当たれば1枚増えることもある。それでも、見出しのない紙を配るよりはよい。

設定はシートごとに持つので、シートを増やしたら1枚ずつ設定する。配ったスクリプトは、60行を超えるのにタイトル行が指定されていないシートを知らせる。

設定を読むスクリプト

シートが10枚あるブックで、1枚ずつ印刷プレビューを開いて確かめるのは時間がかかる。ファイルを読んで一覧にするスクリプトを置いた。

python print-check.py ブック.xlsx

わざと設定を崩した4枚のブックにかけると、こう出る。

よくできた明細
  用紙 A4 縦 / 余白 上1.9cm 下1.9cm 左1.8cm 右1.8cm
  拡大縮小 横1ページ 縦自動
  Excelが計算した縮小率 53%
  印刷範囲 なし
  繰り返す行 $1:$1 / 繰り返す列 なし
  手で入れた改ページ 横0 か所 / 縦0 か所

見るところ
  1枚に潰した表 は縦も1ページに収める指定。行が増えると字が小さくなる
  印刷範囲が残った表 に印刷範囲が残っている
  改ページが残った表 に改ページが2 か所ある。行を足すと位置がずれる

見るところの欄に、直す候補だけが並ぶ。Excelを開かずに読めるので、配る前や受け取った直後にかける。

読み方に1つくせがある。拡大縮小の横1ページという指定は、既定値と同じときファイルに書かれない。書かれていなければ1として読む決まりで、0と書いてあれば自動という意味になる。スクリプトはそこを合わせてある。

ブックが重いときに中を数えるスクリプトと同じ使い方で、配る前に1回かける形にしておくと、同じ失敗を繰り返さない。

印刷の設定を決める順番

順番を決めておくと迷わない。

まず印刷範囲を消す。次に横だけ1ページに収める設定にして、縦は自動にする。そのあとタイトル行を指定する。最後にすべての改ページを解除する。

ここまでやってから縮小率を見て、小さすぎるなら列を減らすか用紙をA3にする。余白を詰めるのは最後の手段にする。1cmを切ると、プリンタが印刷できない範囲に当たることがある。

配るブックでは、この4つをそろえてからシートの保護をかける、と決めておくと手順が短くなる。

保護をかけたあとでも印刷の設定は変えられる。保護したシートで、用紙の向き、横1ページの指定、印刷範囲、タイトル行、改ページの追加の5つを試したら、5つとも通った。保護が止めるのはセルの中身で、印刷の設定は別の扱いになる。

それでも先にそろえておくほうがよい。受け取った人が開いてそのまま印刷できる状態にしておけば、印刷の設定を触らせずに済む。

確かめていないこと

実際に紙へ出していない。枚数は改ページの数から出したもので、プリンタの機種によって印刷できない範囲が違う。余白を詰めた設定は、機種によっては端が切れる。

ヘッダーとフッターの設定は確認していない。ページ番号や日付を入れると、その分だけ本文の入る高さが減るが、枚数への影響は数えていない。

Web版のExcelとGoogleスプレッドシートも試していない。設定の持ち方が違う。

動作確認: Microsoft 365のExcel(バージョン16) / Windows 11 / 2026-09-22確認

Excel印刷改ページスクリプト検算