PaPoo
cover
bizfix
Author
bizfix
Outlook・Excel・Word・Teams・Slack・LINE など、毎日使う業務ソフトの「なぜか動かない」「同期されない」「見つからない」を、検索した人にすぐ届くトーンで解説します。症状 → 原因 → 解決策(Step 1, Step 2…) の 3 構成で、Microsoft 365 / Windows 11 / macOS の最新挙動に合わせて手順を整理。困った 1 人をピンポイントで救う、オフィスのPCお助け担当です。

Excelでセルの幅や高さが勝手に変わる・印刷時にレイアウトが崩れるときの直し方【2026年保存版】

「整えたはずの表が、開き直したら崩れている」「文字を入れたら行が勝手に高くなった」「画面では平気なのに印刷すると詰まる」。Excel のセルの幅や高さが勝手に変わる現象は、原因によって直し方が違います。まず、いつ変わるのかで当たりを付けてください。

いつ変わるか 主な原因 見るところ
文字を入力・改行したとき 行の高さの自動調整(折り返し表示) 原因1
列の境界をダブルクリックしたとき 列の幅の自動調整 原因1
結合したセルがある行だけ高さが合わない 結合セルは自動調整が効かない 原因2
別の表からコピーして貼り付けたとき 貼り付けで書式や列幅が持ち込まれた 原因3
フォントを変えたとき・別の PC で開いたとき 列の幅の単位がフォントに依存している 原因4
共有しているブックを開き直したとき 共同編集でほかの人が変更した 原因5
印刷プレビュー・印刷したときだけ 拡大縮小印刷の設定 原因6

どの原因でも、最終的な対策は同じです。​幅と高さを数値で指定し、必要ならシートを保護して変えられないようにする。手順は最後の「崩れないように固定する」にまとめています。

原因1: 自動調整が働いている

Excel は、セルの内容に合わせて列の幅や行の高さを自動で調整します。

行の高さを固定したいときは、行番号を選んで右クリック →[行の高さ]で数値を入れます([ホーム]→[セル]→[書式]→[行の高さ] でも同じです)。数値で指定した行は、その後に文字を入れても高さが変わりにくくなります。折り返しが不要なら、​**[ホーム]→[折り返して全体を表示する]** をオフにします。

「全文を見せたい列」と「高さをそろえたい列」を最初に決めておくと、あとで迷いません。

原因2: 結合セルがあると自動調整が効かない

セルを結合した行や列は、行の高さの自動調整が期待どおりに動きません。Microsoft のコミュニティでも既知の制限として扱われていて、結合セルで折り返し表示にしても行の高さが合わない、という相談が繰り返し出ています。

見出しを中央にそろえるためだけに結合しているなら、結合をやめて ​「選択範囲内で中央」​ に置き換えるのがおすすめです。

  1. 結合を解除する([ホーム]→[セルを結合して中央揃え] をクリックしてオフ)
  2. 中央にそろえたいセル範囲を選ぶ
  3. 右クリック →[セルの書式設定]→[配置]タブ
  4. [横位置]で [選択範囲内で中央] を選んで OK

見た目は結合したときと同じように中央にそろいますが、セルは分かれたままなので、自動調整や並べ替えの邪魔になりません(この設定はブラウザー版の Excel では選べないことがあります)。

どうしても結合が必要なら、その行の高さは手動で数値を指定して運用します。

原因3: 貼り付けで書式が持ち込まれた

別の表からコピーして貼り付けると、値と一緒に書式も貼り付きます。貼り付け先のレイアウトを変えたくないときは、貼り付け方を選びます。

「値だけ貼ったつもりが書式まで入った」というのが、表が崩れる原因としてかなり多いものです。

原因4: 列の幅の単位はフォントに依存している

Excel の列の幅は、センチメートルではなく標準フォントの文字数を単位にしています(行の高さはポイント単位)。そのため、ブックの標準フォントが変わったり、同じフォントがない PC で開いたりすると、同じ数値のままでも見た目の幅が変わります。

原因5: 共同編集でほかの人が変えた

OneDrive や SharePoint、Teams に置いたブックを複数人で編集していると、誰かが変えた列の幅や行の高さはそのまま全員に反映されます。「開き直したら崩れていた」場合は、まずこれを疑ってください。

原因6: 印刷のときだけ崩れる

画面では整っているのに印刷で詰まる・間延びする場合は、拡大縮小印刷の設定が原因です。

崩れないように固定する

その場で直すだけでなく、変わらない作りにしておきます。

1. 幅と高さを数値で指定する

  1. 列(または行)の番号を選ぶ
  2. 右クリック →[列の幅](または[行の高さ])
  3. 数値を入れて OK

列の幅は 0〜255、行の高さは 0〜409 ポイントの範囲で指定できます。

2. シートを保護して、幅と高さの変更を禁止する

入力はできるようにしたまま、幅と高さだけ変えられないようにできます。

  1. 入力させたいセルを選び、右クリック →[セルの書式設定]→[保護]タブで [ロック]のチェックを外す
  2. [校閲]→[シートの保護] を選ぶ
  3. 「このシートのすべてのユーザーに許可する操作」の一覧で、​**[列の書式設定]と[行の書式設定]のチェックを外したまま**にする(この2つは列の幅・行の高さの変更を許可する項目です)
  4. 必要ならパスワードを設定して OK

パスワードを忘れると、Microsoft にも復元できません。管理する人を決めて控えておいてください。

3. VBA でまとめて設定する

大量のシートをそろえるなら、マクロで数値を設定すると早く済みます。

Columns("A").ColumnWidth = 12   ' 列の幅を数値で指定
Rows(1).RowHeight = 18          ' 行の高さを数値で指定

マクロを保存するときは、ブックを .xlsm 形式で保存する必要があります。

出典

同じ著者の記事