- ベストアンサー
VBAで指定したシート名以外を非表示にする方法
- ExcelのVBAを使用して、指定したシート名以外を非表示にする方法について教えてください。現在、指定したシート名以外を非表示にする方法として、Sheets(Array("B", "C", "D")).Selectというコードを使用していますが、SNameで指定したシート名以外をArrayする方法がわかりません。
- 例えば、Sheet A以外を非表示にしたい場合、VBAコードをどのように書けばよいでしょうか?また、シート名が関連性のない名前や10シート以上ある場合でも対応できる方法を教えてください。
- ExcelのVBAを使用して、指定したシート名以外を非表示にする方法を教えてください。現在、Sheets(Array("B", "C", "D")).Selectというコードを使用していますが、SNameで指定したシート名以外をArrayする方法がわかりません。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Arrayにしたいということなのでご要望とは違いますが 1つだけの指定なら下記のように。 Dim sht As Worksheet SName = "A" For Each sht In ThisWorkbook.Sheets If sht.Name <> SName Then sht.Visible = xlSheetHidden Next
その他の回答 (1)
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 一例です。 Sheet名を格納する方法ではなく、順番にSheet名を検索していく方法です。 Sheet名が「A」以外のSheetを非表示にするとします。 ※ 実際は再表示する必要があると思いますので、 余計なお世話かもしれませんが、再表示のコードも一緒に載せておきます。 標準モジュールに↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub 非表示() Dim k As Long For k = 1 To Worksheets.Count If Worksheets(k).Name <> "A" Then Worksheets(k).Visible = False End If Next k End Sub Sub 再表示() Dim k As Long For k = 1 To Worksheets.Count If Worksheets(k).Visible = False Then Worksheets(k).Visible = True End If Next k End Sub こんな感じではどうでしょうか?m(_ _)m
お礼
非表示、再表示 どちらのマクロも作ってもらえて感謝です。 ありがとうございました。
お礼
そうですね。 無理やりArrayを使わなくてもいいんですね。 出来ました。ありがとうございました。