Excel VBAには、非表示にすることができるHiddenプロパティがあります。
このHiddenプロパティを利用することで、セルやシート、ブックを非表示にしたり、表示したりすることができます。
本記事では、Excel VBAのHiddenプロパティについて、基礎から応用、実務的なサンプルコードを紹介していきます。
Hiddenプロパティとは?
Hiddenプロパティは、Excel VBAでオブジェクトを非表示にするために使用されます。Hiddenプロパティは、以下のオブジェクトに対して使用することができます。
- シート
- ワークブック
- セル
- 列
- 行
例えば、シートを非表示にするには、次のようにします。
1 |
Worksheets("Sheet1").Visible = False |
ここで、Worksheets(“Sheet1”)は非表示にするシートを指定する部分であり、VisibleプロパティをFalseに設定することで、シートを非表示にします。
同様に、ワークブックを非表示にするには、次のようにします。
1 |
Workbooks("Book1.xlsx").Windows(1).Visible = False |
ここで、Workbooks(“Book1.xlsx”)は非表示にするワークブックを指定する部分であり、Windows(1).VisibleプロパティをFalseに設定することで、ワークブックを非表示にします。
Hiddenプロパティの基礎
まずは、Hiddenプロパティの基礎的な使い方を学びましょう。
以下は、セルを非表示にする例です。
1 |
Range("A1").EntireColumn.Hidden = True |
ここで、Range(“A1”)は非表示にするセルを指定する部分であり、EntireColumn.HiddenプロパティをTrueに設定することで、列を非表示にします。
同様に、行を非表示にする場合は、EntireRow.Hiddenプロパティを使用します。
1 |
Range("1:1").EntireRow.Hidden = True |
また、シートを非表示にする場合は、Worksheetsコレクションを使用します。
1 |
Worksheets("Sheet1").Visible = False |
ここで、Worksheets(“Sheet1”)は非表示にするシートを指定する部分であり、VisibleプロパティをFalseに設定することで、シートを非表示にします。
Hiddenプロパティの応用
次に、Hiddenプロパティの応用例をいくつか紹介します。
ワークブックを非表示にする
以下のコードは、指定されたワークブックを非表示にする例です。
1 |
Workbooks("Book1.xlsx").Windows(1).Visible = False |
ここで、Workbooks(“Book1.xlsx”)は非表示にするワークブックを指定する部分であり、Windows(1).VisibleプロパティをFalseに設定することで、ワークブックを非表示にします。
非表示のシートを削除する
以下のコードは、非表示になっているシートを削除する例です。
1 2 3 4 5 6 7 |
Application.DisplayAlerts = False For Each ws In Worksheets If ws.Visible = False Then ws.Delete End If Next Application.DisplayAlerts = True |
ここで、Worksheetsコレクションをループさせ、VisibleプロパティがFalseの場合に、シートを削除します。
ただし、DisplayAlertsプロパティをFalseに設定することで、シートを削除する際に確認ダイアログが表示されないようにしています。
非表示にした列を特定の条件で再表示する
以下のコードは、特定の条件が満たされた場合に、非表示にした列を再表示する例です。
1 2 3 4 5 |
For i = 1 To 10 If Range("A" & i).Value > 5 Then Range("A" & i).EntireColumn.Hidden = False End If Next i |
ここで、Range(“A” & i).Value > 5は、A列のi行目の値が5より大きい場合に、その列を再表示する条件を指定しています。
まとめ
Excel VBAのHiddenプロパティを使うことで、シートやワークブック、セルなどを非表示にしたり、再表示したりすることができます。
また、非表示にしたオブジェクトを削除したり、特定の条件下で再表示することもできます。これらの応用例を参考に、Excel VBAで効率的な作業を行ってみてください。
コメント