Vbaを使用してシートを非表示/表示するにはどうすればよいですか?
VBA コードを使用して、Excel でシートを表示または非表示にすることができます。シート タブを右クリックすると、シートを非表示にするか表示するかのオプションが表示されます。これと同じことが VBA コードで実行できます。
この記事では、使用できるいくつかの方法と方法を見ていきます。
シートを非表示にする VBA コード
アクティブなブックから「Sheet1」を非表示にするとします。この場合、次のようなコードを使用する必要があります。
Sheets("Sheet1").Visible = False
上記のコードでは、Sheet1 を参照し、visible プロパティを使用して、それを false に変更しました。
葉を非常に隠します
ユーザーが簡単に非表示にできない非常に非表示のシートを作成するために使用できる別のオプションがあります。
セルの値に基づいてシートを非表示にする
コード内でシート名を直接使用する代わりにセルの値を使用したい場合は、このセルを参照できます。
Sheets(Range("A1").Value).Visible = True
このコードはセル A1 を参照し、その値を使用して非表示にするシートを参照します。
役立つリンク:マクロの実行–マクロ レコーダー– Visual Basic Editor –パーソナル マクロ ハンドブック
シートを非表示にする前に確認してください
このような小さなコードを使用して、出力を非表示にするシートを確認することもできます。
Sub vba_hide_sheet() Dim sht As Worksheet For Each sht In ThisWorkbook.Worksheets If sht.Name = "Sheet1" Then sht.Visible = False Exit Sub End If Next sht MsgBox "Sheet not found", vbCritical, "Error" End Sub
上記のコードは、 FOR EACH LOOP + IF STATEMENTを使用して、ブック内の各シートをループします。そして非表示にしたいシートにチェックを入れます。
すべてのシートを非表示にする (ActiveSheet を除く)
ここで、理解しておく必要があることが 1 つあります。すべての葉を非表示にすることはできないということです。常に 1 つの葉が表示されている必要があります。
Sub vba_hide_sheet() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets If ActiveSheet.Name <> ws.Name Then ws.Visible = False End If Next ws End Sub
上記のコードは、ブック内のすべてのシートを反復処理し、各シートの名前をアクティブ シートの名前と照合し、一致しない場合はシートを非表示にします。
シートを表示するVBAコード
シートを表示するには、visible プロパティを TRUE に変更する必要があります。
Sheets("Sheet1").Visible = False
表示したいシートがすでに表示されている場合、このコードではエラーは表示されません。ただし、このシートが存在しない場合は、実行時エラー「9」が発生します。
VBA を使用してすべての非表示シートを表示する
ブック内に複数の非表示シートがあり、それらを手動で非表示にしたい場合は、1 つずつ行う必要があるとします。
しかし、これを一度に行うコードを次に示します。
Sub vba_unhide_sheet() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets If ws.Visible = False Then ws.Visible = True End If Next ws End Sub
彼は一枚一枚の葉を調べてマスクを外します。
関連するチュートリアル
- Excel で VBA を使用してシート全体を消去する
- VBA を使用して Excel でシートをコピーおよび移動する
- Excel で VBA を使用した COUNT シート
- Excel で VBA を使用してシートを削除する
- Excel で VBA を使用してシートを保護および保護解除する