「整えたはずの表が、開き直したら崩れている」「文字を入れたら行が勝手に高くなった」「画面では平気なのに印刷すると詰まる」。Excel のセルの幅や高さが勝手に変わる現象は、原因によって直し方が違います。まず、いつ変わるのかで当たりを付けてください。
| いつ変わるか | 主な原因 | 見るところ |
|---|---|---|
| 文字を入力・改行したとき | 行の高さの自動調整(折り返し表示) | 原因1 |
| 列の境界をダブルクリックしたとき | 列の幅の自動調整 | 原因1 |
| 結合したセルがある行だけ高さが合わない | 結合セルは自動調整が効かない | 原因2 |
| 別の表からコピーして貼り付けたとき | 貼り付けで書式や列幅が持ち込まれた | 原因3 |
| フォントを変えたとき・別の PC で開いたとき | 列の幅の単位がフォントに依存している | 原因4 |
| 共有しているブックを開き直したとき | 共同編集でほかの人が変更した | 原因5 |
| 印刷プレビュー・印刷したときだけ | 拡大縮小印刷の設定 | 原因6 |
どの原因でも、最終的な対策は同じです。幅と高さを数値で指定し、必要ならシートを保護して変えられないようにする。手順は最後の「崩れないように固定する」にまとめています。
Excel は、セルの内容に合わせて列の幅や行の高さを自動で調整します。
行の高さを固定したいときは、行番号を選んで右クリック →[行の高さ]で数値を入れます([ホーム]→[セル]→[書式]→[行の高さ] でも同じです)。数値で指定した行は、その後に文字を入れても高さが変わりにくくなります。折り返しが不要なら、**[ホーム]→[折り返して全体を表示する]** をオフにします。
「全文を見せたい列」と「高さをそろえたい列」を最初に決めておくと、あとで迷いません。
セルを結合した行や列は、行の高さの自動調整が期待どおりに動きません。Microsoft のコミュニティでも既知の制限として扱われていて、結合セルで折り返し表示にしても行の高さが合わない、という相談が繰り返し出ています。
見出しを中央にそろえるためだけに結合しているなら、結合をやめて 「選択範囲内で中央」 に置き換えるのがおすすめです。
見た目は結合したときと同じように中央にそろいますが、セルは分かれたままなので、自動調整や並べ替えの邪魔になりません(この設定はブラウザー版の Excel では選べないことがあります)。
どうしても結合が必要なら、その行の高さは手動で数値を指定して運用します。
別の表からコピーして貼り付けると、値と一緒に書式も貼り付きます。貼り付け先のレイアウトを変えたくないときは、貼り付け方を選びます。
「値だけ貼ったつもりが書式まで入った」というのが、表が崩れる原因としてかなり多いものです。
Excel の列の幅は、センチメートルではなく標準フォントの文字数を単位にしています(行の高さはポイント単位)。そのため、ブックの標準フォントが変わったり、同じフォントがない PC で開いたりすると、同じ数値のままでも見た目の幅が変わります。
OneDrive や SharePoint、Teams に置いたブックを複数人で編集していると、誰かが変えた列の幅や行の高さはそのまま全員に反映されます。「開き直したら崩れていた」場合は、まずこれを疑ってください。
画面では整っているのに印刷で詰まる・間延びする場合は、拡大縮小印刷の設定が原因です。
その場で直すだけでなく、変わらない作りにしておきます。
列の幅は 0〜255、行の高さは 0〜409 ポイントの範囲で指定できます。
入力はできるようにしたまま、幅と高さだけ変えられないようにできます。
パスワードを忘れると、Microsoft にも復元できません。管理する人を決めて控えておいてください。
大量のシートをそろえるなら、マクロで数値を設定すると早く済みます。
Columns("A").ColumnWidth = 12 ' 列の幅を数値で指定
Rows(1).RowHeight = 18 ' 行の高さを数値で指定
マクロを保存するときは、ブックを .xlsm 形式で保存する必要があります。