VBA を使用して行を非表示にする

VBA を使用して行を非表示にする

セルの値に基づいて行を非表示にすることに関する以前の質問に従おうとしました(E19)

Sub HideIR()

If Range("$E$19").Value = "2" Then
        Rows("20:26").EntireRow.Hidden = True
    ElseIf Range("$E$19").Value = "1" Then
        Rows("20:26").EntireRow.Hidden = False
    End If

End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
    If Range("$E$19").Value = "2" Then
        Rows("20:26").EntireRow.Hidden = True
    ElseIf Range("$E$19").Value = "1" Then
        Rows("20:26").EntireRow.Hidden = False

    End If
End Sub

セルは非表示になりますが、マクロを再度実行せずに値を変更しても更新されません。

答え1

コードをSub Worksheet_changeシートのコード モジュール (一般的なモジュールだけではありません) なので、シート内の値を変更した後に実行されます。

関連情報