• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:指定したシート名以外を非表示にするには?VBA)

VBAで指定したシート名以外を非表示にする方法

このQ&Aのポイント
  • ExcelのVBAを使用して、指定したシート名以外を非表示にする方法について教えてください。現在、指定したシート名以外を非表示にする方法として、Sheets(Array("B", "C", "D")).Selectというコードを使用していますが、SNameで指定したシート名以外をArrayする方法がわかりません。
  • 例えば、Sheet A以外を非表示にしたい場合、VBAコードをどのように書けばよいでしょうか?また、シート名が関連性のない名前や10シート以上ある場合でも対応できる方法を教えてください。
  • ExcelのVBAを使用して、指定したシート名以外を非表示にする方法を教えてください。現在、Sheets(Array("B", "C", "D")).Selectというコードを使用していますが、SNameで指定したシート名以外をArrayする方法がわかりません。

質問者が選んだベストアンサー

  • ベストアンサー
  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

Arrayにしたいということなのでご要望とは違いますが 1つだけの指定なら下記のように。 Dim sht As Worksheet SName = "A" For Each sht In ThisWorkbook.Sheets If sht.Name <> SName Then sht.Visible = xlSheetHidden Next

SPSQWMBWXN
質問者

お礼

そうですね。 無理やりArrayを使わなくてもいいんですね。 出来ました。ありがとうございました。

その他の回答 (1)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 一例です。 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

SPSQWMBWXN
質問者

お礼

非表示、再表示 どちらのマクロも作ってもらえて感謝です。 ありがとうございました。

関連するQ&A