【Excel完全版】行・列のサイズを思い通りに操るショートカット&VBAチートシート
はじめに
Excelで地味に時間を取られる作業といえば行の高さ・列の幅の調整。
「全列を同じ幅にしたい」「ヘッダー行だけ高くしたい」「飛び地で選んだ列だけ変えたい」……マウスでちまちまドラッグしていませんか?
この記事では ショートカット・メニュー操作・VBA の3アプローチで、あらゆるサイズ指定を網羅します。
目次
1. 知っておくべき基本原則
「何を選択してから変更するか」がすべて
| 選択対象 | 変更の影響範囲 |
|---|---|
| セル(B3など) | そのセルが属する行全体 or 列全体 |
| 行番号(左端の数字) | その行だけ |
| 列番号(上端のアルファベット) | その列だけ |
| Ctrl+A(全セル) | シート全体 |
ポイント: 「行番号・列番号を選択してから変更する」が大原則。セルを選択した状態で変更すると意図しない範囲に適用されることがあります。
Alt+H から始まるキーシーケンス
Excel のリボン操作はすべてキーボードから実行できます。
行の高さ指定 → Alt+H → O → H → 数値入力 → Enter
列の幅指定 → Alt+H → O → W → 数値入力 → Enter
行の自動調整 → Alt+H → O → A
列の自動調整 → Alt+H → O → I
2. 全行・全列を一括サイズ指定
全行の高さを一括指定
手順:
-
Ctrl + Aで全セル選択(または左上の ▲ をクリック) -
Alt + H→O→H - 数値を入力して
Enter
Ctrl+A → Alt+H → O → H → 20 → Enter
全列の幅を一括指定
手順:
-
Ctrl + Aで全セル選択 -
Alt + H→O→W - 数値を入力して
Enter
Ctrl+A → Alt+H → O → W → 12 → Enter
単位について
- 行の高さ:ポイント(pt) 標準は 13.5〜15pt
- 列の幅:文字数(標準フォント1文字分) 標準は 8.38
3. 指定した列だけ・行だけ変更する
連続した列・行を選択して変更
# 列の場合(A〜D列)
A列の列番号クリック → Shiftキーを押しながらD列の列番号クリック
→ Alt+H → O → W → 数値入力 → Enter
# 行の場合(1〜5行)
1行の行番号クリック → Shiftキーを押しながら5行の行番号クリック
→ Alt+H → O → H → 数値入力 → Enter
飛び地の列・行を選択して変更
# 飛び地列(A・C・E列)
A列の列番号クリック → Ctrlキーを押しながらC列クリック → Ctrlキーを押しながらE列クリック
→ Alt+H → O → W → 数値入力 → Enter
# 飛び地行(1・3・7行)
1行の行番号クリック → Ctrlキーを押しながら3行クリック → Ctrlキーを押しながら7行クリック
→ Alt+H → O → H → 数値入力 → Enter
名前ボックスで範囲を直接指定(大量飛び地に便利)
画面左上の名前ボックス(セル参照が表示されている欄)に直接入力して選択できます。
# 列を指定
A:A → A列のみ
B:D → B〜D列(連続)
A:A,C:C,E:E → A・C・E列(飛び地)
# 行を指定
1:1 → 1行のみ
2:5 → 2〜5行(連続)
1:1,3:3,7:7 → 1・3・7行(飛び地)
入力後に Enter で選択確定 → そのままサイズ変更操作へ。
右クリックメニューを使う方法
- 行番号または列番号を右クリック(複数選択後でも可)
- 「行の高さ」または「列の幅」を選択
- 数値を入力して OK
4. 自動調整(オートフィット)
セルの内容に合わせてぴったり調整する「オートフィット」です。
列幅を自動調整
# キーシーケンス
対象列を選択 → Alt+H → O → I
# マウス操作
列番号の右端の境界線をダブルクリック
行高を自動調整
# キーシーケンス
対象行を選択 → Alt+H → O → A
# マウス操作
行番号の下端の境界線をダブルクリック
全列・全行を一括自動調整
# 全列を一括オートフィット
Ctrl+A → Alt+H → O → I
# 全行を一括オートフィット
Ctrl+A → Alt+H → O → A
折り返し設定・結合セルに注意
「折り返して全体を表示する」が設定されているセルや、結合セルがあると自動調整が正しく動作しないことがあります。
5. 全ショートカット一覧表
| 分類 | 操作 | キーシーケンス | 補足 |
|---|---|---|---|
| 全選択 | シート全セル選択 | Ctrl + A |
一括変更の前準備 |
| 列選択 | 連続した列を選択 | 列番号クリック → Shift + 列番号クリック |
A〜D列など |
| 列選択 | 飛び地の列を選択 | 列番号クリック → Ctrl + 列番号クリック |
A・C・E列など |
| 行選択 | 連続した行を選択 | 行番号クリック → Shift + 行番号クリック |
1〜5行など |
| 行選択 | 飛び地の行を選択 | 行番号クリック → Ctrl + 行番号クリック |
1・3・7行など |
| 列幅 | 列幅を数値指定 |
Alt+H → O → W
|
単位:文字数 |
| 列幅 | 列幅を自動調整 |
Alt+H → O → I
|
ダブルクリックでも可 |
| 列幅 | 列幅を既定値に戻す |
Alt+H → O → D
|
シートの標準幅 |
| 行高 | 行の高さを数値指定 |
Alt+H → O → H
|
単位:ポイント(pt) |
| 行高 | 行を自動調整 |
Alt+H → O → A
|
ダブルクリックでも可 |
| 書式コピー | 列幅だけを別列に貼り付け | コピー後、先列を右クリック →「形式を選択して貼り付け」→「列幅」 | 幅だけを転写 |
6. VBAで自動化する
毎回同じサイズに整形する作業は VBA に登録するのが最速です。
Alt + F11 でVBEを開き、「挿入 → 標準モジュール」に貼り付けて F5 で実行します。
全行・全列を一括で数値指定
' 全行の高さと全列の幅を一括設定
Sub SetAllRowColSize()
With ActiveSheet
.Rows.RowHeight = 20 ' 行高(pt)
.Columns.ColumnWidth = 12 ' 列幅(文字数)
End With
End Sub
使用範囲を全列・全行オートフィット
' 使用セル範囲の列幅・行高を自動調整
Sub AutoFitAll()
With ActiveSheet.UsedRange
.Columns.AutoFit
.Rows.AutoFit
End With
End Sub
UsedRange を使うことで、空白の末尾まで処理しないため動作が速くなります。
特定の列・行だけ個別に指定
' B列とD列の幅を個別指定
Sub SetSpecificCols()
Columns("B").ColumnWidth = 20
Columns("D").ColumnWidth = 8
End Sub
' 1行目と5行目の高さを個別指定
Sub SetSpecificRows()
Rows(1).RowHeight = 30
Rows(5).RowHeight = 18
End Sub
ピクセル単位で指定したい場合
Excelはpt単位のため、px → pt に変換する関数を使います。
' px → pt 変換関数(96dpi基準)
Function PxToPt(px As Double) As Double
PxToPt = px * 72 / 96
End Function
' 30pxの行高を設定する例
Sub SetRowHeightPx()
Rows(1).RowHeight = PxToPt(30)
End Sub
AutoFit後に最大幅を制限する
' 自動調整後、列幅が40を超えたら40に制限
Sub AutoFitWithLimit()
Dim col As Range
ActiveSheet.UsedRange.Columns.AutoFit
For Each col In ActiveSheet.UsedRange.Columns
If col.ColumnWidth > 40 Then
col.ColumnWidth = 40
End If
Next col
End Sub
7. 単位・数値の早見表
| 項目 | Excelの単位 | 標準値 | よく使う数値 | 目安 |
|---|---|---|---|---|
| 列の幅 | 文字数(標準フォント1文字分) | 8.38 | 8 / 10 / 12 / 15 / 20 | 日本語なら10〜15が読みやすい |
| 行の高さ | ポイント(pt) | 13.5〜15 | 18 / 20 / 24 / 30 | ヘッダーは20〜30ptがよく使われる |
| 1pt | — | — | ≈ 0.353mm | 印刷サイズとの対応に使う |
| 1px(96dpi) | — | — | ≈ 0.75pt | VBA換算:px × 72 / 96 |
| A4縦 印刷幅 | — | — | 列幅合計 ≈ 70〜75文字分 | 余白込みで1ページに収める目安 |
8. よくある失敗と対処法
❌ セルを選択してサイズ変更したら意図しない行まで変わった
原因: セル(例:B3)を選択した状態でサイズ変更すると、B3が属する3行目全体が変更対象になります。
対処: 行番号または列番号を直接クリックして行・列全体を選択してからサイズ変更する。
❌ 全列自動調整したら一部の列が異常に広くなった
原因: URLや長い文字列が入ったセルがあると、AutoFitがその幅に合わせてしまいます。
対処: AutoFit後に上限幅をVBAで制限する(上記「AutoFit後に最大幅を制限する」参照)。または問題の列だけ手動で再指定。
❌ 行高を変更したのに反映されない・すぐ戻る
原因: 「折り返して全体を表示する」が設定されている行は、セル内容量によって高さが自動上書きされることがあります。
対処: 対象セルの「折り返して全体を表示する」をオフにするか、AutoFitではなく数値で直接指定する。
❌ 列幅を別のシートと同じにしたい
対処:
- コピー元の列全体を選択して
Ctrl + C - コピー先の列番号を右クリック
- 「形式を選択して貼り付け」→「列幅」を選択して OK
まとめ
| やりたいこと | 最速の方法 |
|---|---|
| 全行・全列を同じサイズに |
Ctrl+A → Alt+H+O+H or W
|
| 特定の列・行だけ変更 | 行番号・列番号を選択 → Alt+H+O+H or W
|
| 飛び地の行・列を変更 |
Ctrlクリックで複数選択 or 名前ボックスで直接入力 |
| 内容に合わせて自動調整 |
Alt+H+O+I(列)/ Alt+H+O+A(行) |
| 毎回同じ整形を繰り返す | VBAマクロに登録してワンクリック実行 |
Alt+H → O さえ覚えてしまえば、あとは H(Height)・W(Width)・A(AutoFit行)・I(AutoFit列)と直感的に覚えられます。