ここから本文です

プルダウンの変更に応じて、シートの表示/非表示を切り替えたい。

nyo********さん

2019/7/1310:25:30

プルダウンの変更に応じて、シートの表示/非表示を切り替えたい。

プルダウンの内容:「A」「B」「C」
シートの見出し名:「A」「B」「C」

プルダウンで「A」を選択したら、「B」「C」のシートを非表示にする
プルダウンで「B」を選択したら、「A」「C」のシートを非表示にする
プルダウンで「C」を選択したら、「A」「B」のシートを非表示にする

プルダウンが空欄の場合は、全シートが表示される
プルダウンの内容と、シートの見出し名は同じものを設定します
条件に合わないシートは、表示させる

以上の、操作が可能か、ご教授ください。
よろしくお願いいたします。

Windows10 Excel2013

閲覧数:
32
回答数:
2
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

aka********さん

2019/7/1311:21:02

プルダウンするシートを シートDの A1セルとすれば
シートDの シートモジュールで

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
If Target.Value = "A" Then
Sheets("A").Visible = True
Sheets("B").Visible = False
Sheets("C").Visible = False
ElseIf Target.Value = "B" Then
Sheets("A").Visible = False
Sheets("B").Visible = True
Sheets("C").Visible = False
ElseIf Target.Value = "C" Then
Sheets("A").Visible = False
Sheets("B").Visible = False
Sheets("C").Visible = True
Else
Sheets("A").Visible = True
Sheets("B").Visible = True
Sheets("C").Visible = True
End If
End If
End Sub

で いいかと

質問した人からのコメント

2019/7/13 15:04:48

ご回答ありがとうございます。
完璧な操作ができました!
プルダウンシートと、A~Cのシート、さらにA~C以外の表示しておきたいシートが残っている状態でしたので、私の希望通りの動きとなりました。
本当にありがとうございます!

ベストアンサー以外の回答

1〜1件/1件中

ann********さん

2019/7/1311:32:03

プルダウンの設定されているシートが A~C のいずれかでしたら、そのシートが非表示になったら、以降の操作がしにくくなりますね。
ですので、先頭シート(Sheet1。一番左)のA1にプルダウンが設定され、その他3枚のシートが A~C と仮定したうえでの回答です。

Sheet1のシートモジュールに以下を記述します。
-------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim sh As Object, i As Integer
If Target.Address(0, 0) <> "A1" Then Exit Sub
For Each sh In ActiveWorkbook.Sheets
sh.Visible = True
Next
If Target.Value <> "" Then
For i = 2 To Sheets.Count
If Sheets(i).Name <> Target.Value Then Sheets(i).Visible = False
Next
End If
End Sub

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる