質問: "b"の場合など、どのシート名を指定した場合でも その指定したシート名以外のシートを非表示にするvbaコードを教えてくれませんか? しかも、例題でa,b,c,dとしましたが 実際のシート名は、a会社、b会社、c事業部、d部署・・・等 関連性のないシート名だし、10シート以上あります。 sheets(array("b", "c", "d")).select の部分を,vbaでどううまくやればいいのかわかりません。 snameで指定したシート名以外をarrayしたいです。 ご回答よろしくお願いします。
回答: こんばんは! 一例です。 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