プロが教えるわが家の防犯対策術!

Excelのシートの表示、非表示の方法について教えてください。
ワークシート名が「管理表」のシートに
セルH1に「資料有」が表示されたタイミングで、シート名「資料室」のシートが表示され
セルD4に「有」が表示されたタイミングで、シート名「倉庫」のシートが表示したいです。
シート「資料室」「倉庫」は通常はシートの非表示設定で非表示になっており、
上記の条件の時のみ各シートを表示させたいです。
よろしくお願いいたします。

質問者からの補足コメント

  • うーん・・・

    回答ありがとうございます。
    貴者の指示通りにコードを設定しましたが、
    上手く作動してくれませんでした、
    D4セルはプルダウン選択で「有」を表示
    H1セルには「=$B$2&""&$D$2」の数式があり、
    B2、D2をプルダウン選択した値が、H1セルに表示されるようになっております。
    この事が原因でしょうか?説明不足で申し訳ありません。
    よろしくお願いいたします。

    No.4の回答に寄せられた補足コメントです。 補足日時:2022/02/02 12:31

A 回答 (4件)

No4です。



一応、当方の環境で動作確認はしてあります。

>上手く作動してくれませんでした
「上手くいく/いかない」だけの情報では、ほとんど何の役にも立ちませんね。

補足によると、対象セルには数式が設定されているようですが、数式の計算で値が変更されたセルに関してはChangeイベントは発生しません。
仮に、直接値を変更すれば動作するようであれば、(多分)それが原因と推測されます。
もしも原因がそこであるなら、トリガーを変更すれば宜しいでしょう。

原因が別にある場合は、ご提示の情報からではわかりかねます。
    • good
    • 0

こんにちは



>上記の条件の時のみ各シートを表示させたいです。
どうやら、その考え以外を受け入れる気はまったくなさそうなので・・

Private Sub Worksheet_Change(ByVal Target As Range)
Dim c
If Intersect(Target, Range("D4,H1")) Is Nothing Then Exit Sub
For Each c In Intersect(Target, Range("D4,H1"))
Select Case c.Address
Case "$D$4"
Worksheets("倉庫").Visible = "有" = c.Text
Case "$H$1"
Worksheets("資料室").Visible = "資料有" = c.Text
End Select
Next c
End Sub
この回答への補足あり
    • good
    • 0

VBAであれば、


ワークシートチェンジイベントを使えば可能です。
Ifでh1セルの内容を確認して、シート表示、非表示に処理分岐させます。

こちらを参考に。

【エクセルVBA】イベントを使ってもっと便利なツールにしてみよう!WorksheetオブジェクトのChangeイベント
https://tonari-it.com/excel-vba-event-worksheet- …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
参考にさせて頂きます。

お礼日時:2022/02/02 12:27

右クリックして非表示を押すと良いのでは?

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!