【VBA】非表示にした行・列を忘れず再表示する方法

VBAで作業を効率化するために、特定の行や列を一時的に非表示にすることはよくあります。しかし、処理が終わった後に再表示を忘れると、データが隠れたままでミスや混乱の原因になります。
この記事では、行や列を非表示にした後、確実に再表示する方法とそのポイントを解説します。


1. 行や列を非表示にする基本

VBAで行や列を非表示にするには、Hiddenプロパティを使います。

行を非表示にする

Rows(3).Hidden = True

列を非表示にする

Columns("B").Hidden = True

2. 再表示する基本

非表示にした行や列を再表示するには、同じくHiddenプロパティをFalseに設定します。

行を再表示する

Rows(3).Hidden = False

列を再表示する

Columns("B").Hidden = False

3. 忘れず再表示するためのコツ

⚫️一時的な処理の流れを意識する

非表示は、一時的に必要なときだけ使い、処理が終わったらすぐ再表示するようにコードを書くのがポイントです。


⚫️具体例:一時的に列を非表示→処理→再表示

Sub 一時的に列を非表示して処理する()
'B列を非表示
Columns("B").Hidden = True

'ここに必要な処理を書く
MsgBox "処理が完了しました"

'B列を再表示
Columns("B").Hidden = False
End Sub

⚫️忘れを防ぐためにWith構文を使う

Sub 一時的に行を非表示して処理する()
With Rows(5)
.Hidden = True
'必要な処理
MsgBox "処理中"
.Hidden = False
End With
End Sub

⚫️エラーが発生しても再表示するには?

処理中にエラーが発生すると、再表示処理が実行されないことがあります。
それを防ぐにはOn ErrorExit Subと組み合わせて対策します。

Sub エラー時でも再表示する()
Columns("C").Hidden = True

On Error GoTo 終了処理

'処理内容
MsgBox 1 / 0 '故意にエラーを発生

終了処理:
Columns("C").Hidden = False
End Sub

4. 非表示セルの状態を確認する

非表示かどうかを判定するには、以下のように書きます。

If Columns("B").Hidden = True Then
MsgBox "B列は非表示です"
End If

5. まとめ

処理内容コード例
行を非表示にするRows(3).Hidden = True
行を再表示するRows(3).Hidden = False
列を非表示にするColumns("B").Hidden = True
列を再表示するColumns("B").Hidden = False
非表示かどうか判定するIf Columns("B").Hidden = True Then

6. 結論

行や列の非表示は便利ですが、再表示を忘れると見えなくなったデータに気づかず、誤操作やトラブルの原因になります。
**「非表示にしたら、必ず再表示する」**この意識を持ち、コードの中でしっかり再表示処理を組み込むことが大切です。

コメント

タイトルとURLをコピーしました