【Excelマクロ】行や列をVBAで自動的に非表示/再表示

見せたい情報だけをスッキリ表示したい

Excelでは、特定の行や列を一時的に隠したい場面があります。

  • 集計用の列は普段見せなくていい
  • データが多くて見づらいから、必要な範囲だけ表示したい
  • 印刷用に一部だけ非表示にしたい

こういった要望に応えるのが「行や列の非表示」機能です。手動でもできますが、VBAマクロで自動化すれば、何度でもワンクリックで切り替えできます。

行を非表示・再表示するマクロ

まずは行の非表示・再表示の基本コードです。今回は、5〜10行目を操作する例です。

コード例(行を非表示)

Sub HideRows()
    Rows("5:10").Hidden = True
End Sub

コード例(行を再表示)

Sub ShowRows()
    Rows("5:10").Hidden = False
End Sub

解説

  • Rows("5:10") は、5行目から10行目を表します。
  • .Hidden = True で非表示、False で再表示します。

列を非表示・再表示するマクロ

同じように、今度はを対象にしてみましょう。たとえば、C列からE列を非表示にしたい場合は次のように書きます。

コード例(列を非表示)

Sub HideColumns()
    Columns("C:E").Hidden = True
End Sub

コード例(列を再表示)

Sub ShowColumns()
    Columns("C:E").Hidden = False
End Sub

解説

  • Columns("C:E") のように文字で列指定が可能です。
  • 行と同様、.Hidden プロパティを使って表示状態を切り替えます。

条件によって非表示を切り替えるマクロ

「データが入っていない行だけ非表示にしたい」といった、条件付きで非表示する方法も可能です。

コード例(A列が空白なら、その行を非表示)

Sub HideIfBlank()

    Dim i As Long

    For i = 2 To 100
        If Cells(i, 1).Value = "" Then
            Rows(i).Hidden = True
        Else
            Rows(i).Hidden = False
        End If
    Next i

End Sub

解説

  • 2行目〜100行目を対象にしています。
  • A列のセルが空白なら、その行を非表示にする。
  • 空白でない場合は再表示することで、切り替えにも対応。

実装するメリット

行や列の表示・非表示をマクロで制御することには、次のようなメリットがあります。

表示切り替えを自動化できる

  • 毎回手作業で行や列を選択して非表示にする手間がなくなる
  • 表示状態を一発で戻せるマクロも用意しておける

誤操作を防げる

  • 非表示にする対象をマクロに固定しておけば、間違えて消す心配がない

見やすさ・印刷対応にも便利

  • 必要なデータだけを見せる/印刷する形に整えやすくなる

まとめ

行や列の非表示/再表示は、ちょっとしたことですが業務での見やすさや効率に大きな影響を与えます。

手動でやっていた操作をマクロで自動化することで、

  • 作業のミスが減る
  • スピードが上がる
  • 「整っている」印象を与えられる

といった成果につながります。

“見せるところ”と”隠すところ”を意識してマクロを活用してみてください。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

上部へスクロール