![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
エクセルです。
例えば、
A,B,C,Dと言うシートがあり、
A以外を非表示にさせたい場合は、
Sub test()
Dim SName As String '表示したいシート名
SName = "A"
Sheets(Array("B", "C", "D")).Select
ActiveWindow.SelectedSheets.Visible = False
End Sub
で出来ますが、
SName = "B"の場合など、どのシート名を指定した場合でも
その指定したシート名以外のシートを非表示にするVBAコードを教えてくれませんか?
しかも、例題でA,B,C,Dとしましたが
実際のシート名は、A会社、B会社、C事業部、D部署・・・等
関連性のないシート名だし、10シート以上あります。
Sheets(Array("B", "C", "D")).Select
の部分を,VBAでどううまくやればいいのかわかりません。
SNameで指定したシート名以外をArrayしたいです。
ご回答よろしくお願いします。
![「指定したシート名以外を非表示にするには?」の質問画像](http://oshiete.xgoo.jp/_/bucket/oshietegoo/images/media/5/28386423_5497dd8f3dbf9/M.jpg)
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
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
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 3 2022/06/10 09:24
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/03/02 08:40
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/08 09:08
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 6 2022/06/08 12:55
このQ&Aを見た人はこんなQ&Aも見ています
-
「環境が人を育てる」って本当?環境によって人格や生き方は本当に変わるのか
環境が人生に与える影響は実際どれほどのものなのか、専門家の田宮由美さんに伺った。
-
【Excel VBA】ブックを開いた時、指定のシート以外非表示にするマクロ
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
VBAで指定シート以外の選択
Visual Basic(VBA)
-
-
4
【VBA】複数のシートの指定した列を非表示・表示をさせたい
Excel(エクセル)
-
5
特定のシート名のシートのみ除外して、それ以外のシート名のシートをすべて集約する方法(VBA)
Excel(エクセル)
-
6
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
7
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
8
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
9
特定の文字を含むシートだけマクロ処理をしたい
Visual Basic(VBA)
-
10
実行時エラー'1004': WorkSheetクラスのVisibleプロパティを設定できません
Visual Basic(VBA)
-
11
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
12
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
13
エクセル・マクロ シートの非表示でマクロのエラー
Visual Basic(VBA)
-
14
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
15
名前をつけて保存した後、元のファイルに戻るには
その他(コンピューター・テクノロジー)
-
16
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
17
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
18
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
19
UserForm1.Showでエラーになります。
工学
-
20
VBA 変数名に変数を使用したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
EXCELの「シートの見出し」のフ...
-
【Excel VBA】データ貼り付け先...
-
accessへエクセルの複数のシー...
-
PCで使用できる暗記シート ア...
-
InputBoxに入力した言葉をシー...
-
エクセルで各シートに日付・曜...
-
複数シートの選択解除の方法
-
ギャップレスCDの作成
-
エクセルの2つのシートを並び...
-
複数のワークシートEXCELで一つ...
-
ActiveSheet.Protect UserInter...
-
エクセルで複数のシートに画像...
-
エクセルのVBユーザーフォーム...
-
パワーポイントでスライドマス...
-
Numbersについてお伺いです。 ...
-
Excelで作成した数個のファイル...
-
エクセルのカレンダーから条件...
-
【ExcelVBA】マクロの入ったシ...
-
Excelのシートに自動で日付を入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで複数のシートを一度に「...
-
エクセルでブック内の倍率がバ...
-
特定のシートのみ再計算させな...
-
エクセルで複数のシートに画像...
-
ハイパーリンクでジャンプした...
-
ワークシートそのものの色を変...
-
エクセルの2つのシートを並び...
-
【ExcelVBA】マクロの入ったシ...
-
エクセル、特定のシートにパス...
-
エクセルのシート連番の振り直し
-
EXCELの図形(テキストボックス)...
-
特定の複数のシートに同じ処理...
-
【Excel VBA】データ貼り付け先...
-
エクセルのシー名を二段表示に...
-
EXCELの「シートの見出し」のフ...
-
Accessのテーブルを既存のExcel...
-
Wordで差し込み印刷時に表示す...
-
accessへエクセルの複数のシー...
-
エクセル、別のシートの表をポ...
-
指定したシート名以外を非表示...
おすすめ情報