シートのインデックスと名前と数、表示と非表示の制御
目次
シートのインデックス番号と名前
現在のシートのインデックス番号と名前を表示する
ActiveSheet.Index 'シートのインデックス ActiveSheet.Name 'シートの名前
Msgboxに表示させます。
Sub GetSheetName() MsgBox "現在のシート" & vbCrLf & _ "Index = " & ActiveSheet.Index & vbCrLf & _ "Name = " & ActiveSheet.Name End Sub
結果表示
シートを移動させたらインデックス番号はどうなる?
Sheet2を左端に移動してみます。
Indexが1になりました。Indexはあくまでもシートの左からの順番だということが分かります。
ブックに含まれるすべてのシートのインデックスと名前を表示する
Sub GSN_All() Dim myShts As Object Dim SN As String SN = "Index:Name" & vbCrLf For Each myShts In ActiveWorkbook.Sheets SN = SN & myShts.Index & ":" & myShts.Name & vbCrLf Next myShts MsgBox SN End Sub
ブックに含まれるシートの数は?
Sub GetSheetCount() MsgBox Worksheets.Count End Sub
シートの非表示と再表示
シートの表示と非表示の制御はシートのVisibleプロパティで行います。
Sheets("Sheet1").Visible = True または False または xlVeryHidden
選択したシートを非表示にする
メニュー操作の場合
注意点:全てのシートを非表示にしようとすると次のエラーダイアログが出ます。
VBAの場合
Sub SheetInvisible() ActiveWindow.SelectedSheets.Visible = False End Sub
メニュー操作と同様、全てのシートを非表示にしようとするとエラーが出ます。エラー処理の追加が必要です。
非表示のシートを再表示する
メニュー操作の場合
VBAの場合
Sub AllSheetsVisible() Dim myShts As Object For Each myShts In ActiveWorkbook.Sheets myShts.Visible = True Next myShts End Sub
全てのシートをFor Each ~ Nextで一つずつ回してVisibleプロパティをTrueにしていきます。