Corredor

ウェブ、プログラミングの勉強メモ。

【根本解決方法はなし】Excel で印刷プレビューすると文字切れが発生する件の原因と対策

Excel の通常ビューで文字を入力しているときはセルの枠内に文字が収まっているのに、印刷プレビューで見てみると文字切れが発生していることがある件。

代表的な発生要因はプロポーショナルフォントを使用していること。「MS P ゴシック」や「MS P 明朝」などのプロポーショナルフォントを使っていると、印刷プレビューで見た方がセルのサイズに対する文字サイズが大きく計算されるようで、文字切れが発生するという仕組み。

根本解決方法はない

原因は Excel の仕様。通常ビューと印刷プレビューとでレンダリングの方法が違うことによるものらしい。

Excel は行、列単位でサイズのデータを持ち、表示の調整をしています。他の種類のアプリケーションに比較しても、表示に関して計算処理が多くなることで速度が遅くなります。表計算ソフトの性格上、行や列のサイズを変更したり、スクロールさせたりする操作は頻繁に行なわれますので、Excel ではある程度処理を簡略化することで速度を優先させています。Excel では、サイズの基本単位として「標準フォント」で指定されたフォントの幅をベースに、その時点でのプリンタ ドライバからの情報も合わせて計算で求められた「ポイント」を使用しています。この方法は、環境に依存しますので表示上の正確さには欠けますが、表示の度に表示領域と表示文字列の調整 (計算) を行わなくてすむため、速度的に有利になります。この他にもいくつかの理由によって、ワープロソフトや DTP ソフトなどのように出力を重要視するアプリケーションよりは厳密ではない部分があります。

強調した部分のとおり、これが仕様なので、印刷プレビュー表示をなんとかするとか、そういう根本解決の方法はない。

対策案

ネットで見た限り、以下のような対策を取るしかない。

  • プロポーショナルフォントを使わず等幅フォントを使う
    • でも URL やソースコードでもない日本語で等幅フォントが印刷されると、ちょっとキモい…
  • セルの後ろに改行を入れ、高さに余白を作っておく
    • (そういえばセル内で改行する方法を知らない人がいたが、セル内で文字を入力中に Alt + Enter)
    • 入れ忘れてたら文字切れする
    • 他人と共同で作成しているドキュメントの場合、改行の数とか入れ方とかのルールがないと統一感のない資料になる (← 日本の SE お得意の Excel の使い方してるのがバレる…)
    • マクロで改行を入れるようにするとか
    • 書式設定で @ のあとに Ctrl + J で改行コードを入力し、末尾に必ず改行コードが付くようにすることもできる
  • 通常ビューの時に表示倍率を 98% にしておくと印刷プレビュー時の表示に近付く

ぼくが取っているシンプルな方法

「メイリオ」フォントを使う。以上。

メイリオフォントは全角文字が等幅で、半角文字はプロポーショナルなフォント。しかし、全角・半角どちらの文字が入ったセルであっても、印刷プレビュー時は通常プレビュー時と比べてセルサイズに対して文字サイズが小さくなり、通常ビューより余白が広くなるような見え方をする。Alt → O → S でシート全体のスタイル定義として「メイリオ」フォントに変更しておくと良い。

ネットで「Excel メイリオ 印刷プレビュー」などと検索すると、逆に文字切れするという報告も沢山あるが、自分の環境ではどうやっても文字切れは発生せず、個人的にはメイリオにするだけで解決している。

Excel 最強の教科書[完全版]――すぐに使えて、一生役立つ「成果を生み出す」超エクセル仕事術

Excel 最強の教科書[完全版]――すぐに使えて、一生役立つ「成果を生み出す」超エクセル仕事術