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