エクセルVBAでワークシートを表示、非表示にする!

エクセルのシートを、非表示にしたいという事はないでしょうか。他人見られたくない、誤って編集されたくないといったような事情がある時、エクセルVBAで、エクセルのシートを表示、非表示に切り替えることができます。それには、Visibleプロパティを、Trueまたは、Falseに設定することで、シートを表示、非表示に切り替えられます。ファイルを起動させた時に、最初から、シートを非表示にすることもできるし、ボタンをエクセルシートに作成して、ボタンをクリックして、シートを非表示にしたりもできます。その場合は、表示、非表示に2つのボタンを作成すると、ボタンからシートを表示、非表示、切り替えできます。

 

 

シートを表示、非表示にする

エクセルVBSで、シートを表示、非表示の切り替えをしてみましょう。

Visibleプロパティ

構文 :  object.Visible

シートを非表示、表示を切り替えるには、Visibleプロパティを使います。

Worksheetオブジェクトの、Visibleプロパティを、Trueか Falseを設定することで、シートの表示、非表示を切り替えられます。

Visibleプロパティには、Falseや xlSheetHiddenの定数を設定したり、「0」といった値を設定することもできます。

 

 

シートを非表示にする

シートを非表示にするVBAです。メニューからユーザーが、再表示することができます。

Visibleプロパティに Falseを設定して、シートを非表示にするコードです。

シート名は「Sheet1」です。

Sub 非表示()
Sheets(“Sheet1”).Visible = False
End Sub

Visibleプロパティに xlSheetHiddenを設定しても、非表示にできます。

Sub 非表示()
Sheets(“Sheet1”).Visible = xlSheetHidden
End Sub

シート名が「売上表」の場合のVBAです。

Sub 非表示()
Sheets(“売上表”).Visible = False
End Sub

ボタンをクリックして、シートを非表示にする場合は、次のようになります。

Private Sub CommandButton1_Click()
Sheets(“Sheet1”).Visible = False
End Sub

 

 

シートを表示する

シートを表示するVBAです。

シートを非表示にした場合、シートを再表示できます。

Sub 非表示()
Sheets(“Sheet1”).Visible = True
End Sub

Visibleプロパティに xlSheetVisibleを設定しても、表示できます。

Sub 非表示()
Sheets(“Sheet1”).Visible = xlSheetVisible
End Sub

 

 

シートを再表示できない非表示にする

Visibleプロパティに、Falseや xlSheetHiddenを設定すると、シートをユーザー側から再表示することができます。シートを完全に表示できないようにするには、Visibleプロパティに xlSheetVeryHiddenを設定します。

シートを完全に非表示にする

Sub 非表示()
Sheets(“Sheet1”).Visible = xlVeryHidden
End Sub

次のコードでもシートを非表示にできます。

Sub 非表示()
Sheets(“Sheet1”).Visible = xlSheetVeryHidden
End Sub

 

Visibleプロパティに設定する定数と値

定数 内容
True 1または-1 シートを表示します。
False 0 シートを非表示にします。ユーザー側でメニューからシートを再表示できます。
xlSheetVisible 1または-1 シートを表示します。
xlSheetHidden 0 シートを非表示にします。ユーザー側でメニューからシートを再表示できます。
xlSheetVeryHidden xlVeryHidden 2 シートを非表示にします。ユーザー側でメニューからシートを再表示できません。

 

シートの操作

ここでは、エクセルVBAで、Visibleプロパティに定数を設定することで、シートを表示、非表示にしました。もちろん、「0」や「1」、「2」を設定して、シートを表示、非表示に切り替えることもできます。シートの表示、非表示の切り替えは、シートの操作ではよく使われます。ファイルには、あまり情報を見られたくないシートがあります。開いたとき、非表示になっていると、隠れシートがあることに気が付きません。この様にして、大事な情報を保護することができます。

たまに、Workseetクラスの Visibleプロパティを設定できません!とエラーが出ることがあります。その時は、ブックの保護が設定されている場合があります。または、定数を間違えているといったこともあります。再度コードを確認して、間違えがないか、よく確認してみましょう。

こちらの記事もご覧ください。⇒エクセルVBAでユーザーフォームを開く、閉じる