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 コード

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

彼は一枚一枚の葉を調べてマスクを外します。

VBAとは

関連するチュートリアル

コメントを追加する

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