はじめに
Excelで作業をしていると、
「一時的に列を隠して見やすくしたい」
「条件に合う列だけ非表示にしたい」
そんな場面がよくあります。
VBAでは、列を非表示にする方法がいくつかあり、
目的に合わせて使い分けることで、コードがより安全で扱いやすくなります。
ここでは、列を非表示にする基本のコードと、そのしくみを解説します。
まずはコードを確認
Columns(3).Hidden = True
もっともシンプルな書き方です。
3列目(C列)を非表示にします。
コードのしくみを解説
Columns(列番号).Hidden = True で列を非表示にする
Hidden = True は、列を隠すためのプロパティです。
Columns("C:E").Hidden = True 'C〜E列を非表示
複数列をまとめて非表示にすることもできます。
Range を使って列を非表示にする
Range("C1").EntireColumn.Hidden = True
- セルを基準に列全体を非表示にしたいときに便利
- EntireColumn は「そのセルが属する列」を指します
シートを指定して非表示にする
Worksheets("データ").Columns(3).Hidden = True
複数シートを扱う場合は、シート名を明示すると安全です。
あわせて知っておきたいポイント
列を再表示する
Columns(3).Hidden = False
非表示を解除するときは False を指定します。
条件に合う列だけ非表示にする例
If Cells(1, 3).Value = "" Then
Columns(3).Hidden = True
End If
見出しが空白の列を隠すなど、実務でよく使うパターンです。
ループで複数列を非表示にする
Dim i As Long
For i = 1 To 10
If Cells(1, i).Value = "非表示" Then
Columns(i).Hidden = True
End If
Next i
条件に応じて列を隠す処理は、データ整理で役立ちます。
使うときに気をつけたいこと
- 非表示にした列は見えないだけで削除されません
→ データは残っているため、後で再表示できます。
- 結合セルがあると非表示範囲が広がることがあります
→ 必要に応じて結合を解除してから操作します。
- フィルターと競合する場合があります
→ フィルター中の非表示は、意図しない動作になることがあります。
まとめ
- Columns(番号).Hidden = True で列を非表示にできる
- EntireColumn を使うとセル基準で列全体を非表示にできる
- 条件付き非表示や複数列非表示など、実務で便利な書き方も多い
- 非表示は削除ではないため、後から再表示できる
列の非表示を自動化できると、データの見やすさがぐっと向上します。

列を非表示にする処理は、表を整えるときにとても便利な機能です。
必要な情報だけを見やすくすることで、作業がスムーズになります。

ちょっと隠しておきたい列は、VBAにそっとお願いしよう。
人は、必要な情報に集中できるね。

コメント