[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『行の表示・非表示マクロについて』(じーこ)
勉強不足で、検索も悪かったのか、皆様のお力を
お貸しいただければと思い質問させていただきます。
行の表示・非表示マクロについてなのですが、
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
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.