[[20161025205852]] 『行の表示・非表示マクロについて』(じーこ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『行の表示・非表示マクロについて』(じーこ)

勉強不足で、検索も悪かったのか、皆様のお力を
お貸しいただければと思い質問させていただきます。

行の表示・非表示マクロについてなのですが、
A1に「○」と入力した場合にB2には「NO」と
表示されるのですが、B2が「NO」だった場合、
4〜5行目を非表示にして、B2が「NO」以外だった
場合には、4〜5行目を再表示したいのですが、
下記のマクロでは全く反応してくれませんでした。
直接「NO」と入力すると非表示になるのですが・・・・
宜しくお願い致します。

    A       B
1   ○     =IFERROR(VLOOKUP(A1,AA:AB,2,0),"")
2
3
4
5
6

'----------------------------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B2")) Is Nothing Then

    Cells.EntireRow.Hidden = False
    Select Case Range("B2").Value
        Case "NO"
            Range("4:6").EntireRow.Hidden = True
    End Select
End If
End Sub

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 変化が B1 なのかB2 なのか不明ですが。
 (レイアウトでは B1 ですけど、コードでは B2をきいていますね)

 いずれにしても、計算結果によるセル値の変化は Changeイベントでは捕捉できません。
 現在、B列側 の変化で判定しておられますが、B列側 は A列が "○" のときに "No" になるわけですから
 A列側が "○" かどうかの判定をされたらいいのでは?

(β) 2016/10/25(火) 21:57


βさん

回答ありがとうございます。

B2が間違っていました。すみません。
B2が「NO」ではなくB1が「NO」となるんでした。

βさんが言っている「Changeイベントでは捕捉できません。」
でしたが、他に何か良い方法があるのでしょうか?

(じーこ) 2016/10/26(水) 09:21


 横からですけど、βさんのコメントにいい方法が書かれています。

 >A列側が "○" かどうかの判定をされたらいいのでは?

 あと質問には4〜5行目を表示(非表示)したいと書いてあるのに、コードを見ると
 4〜6行目になっていますよ?
(bi) 2016/10/26(水) 09:31

入力するのはA2セルということですよね?

 Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address <> "$A$2" Then Exit Sub

    Cells.EntireRow.Hidden = False
    Select Case Range("B2").Value
    Case "NO"
        Range("4:6").EntireRow.Hidden = True
    End Select
 End Sub
(???) 2016/10/26(水) 10:25

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.