エクセルで、「シートを非表示」は複数のシートを選んでまとめて出来るのに、再表示は一枚ずつやらないとできないのですよね。
気がついたら非表示のシートがたくさん溜まっていて、まとめて表示させたいのに、一枚ずつしかできなくてイライラ…(笑)
なにか方法はないのか少し調べてみたのですが、見つからず。
マクロでやってしまうのが簡単そうです。
「マクロの記録」をオンにして、シートを一枚再表示してみる。
マクロの記録を終了して、VisualBasicEditorを開くと
Sheets("sheet1").Visible = True
となっていたので…
for Next で回せるかな?
Sub シート再表示()
For i = 1 To Sheets.Count
Sheets(i).Visible = True
Next
End Sub
できたー\(^o^)/
For Next ではなく、For Each を使ってもできるようです。
For Eachステートメントとは、配列やコレクションなどのグループの各要素に対して繰り返し処理を行う場合に使う。
コレクションとは、オブジェクトの集合のこと
Sub シート再表示()
Dim sht As Worksheet
For Each sht In Worksheets
sht.Visible = True
Next
End Sub
※For Nextのほうが汎用性は高いが、コレクションに対する処理の場合はFor Eachのほうが短く済むらしい。
(この程度のスクリプトでは違いが分かりませんが…)
コメント