ANo.2です。ANo.2のコードだとエラーになる場合がありますので、次のように訂正します。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$1" Or Not IsNumeric(Target.Value) Then Exit Sub
If Target.Value < 1 Or Target.Value > Rows.Count - 2 Then Exit Sub
Rows(Target.Value + 3 & ":" & Rows.Count).Hidden = True
Rows("1:" & Target.Value + 2).Hidden = False
End Sub
4行目と5行目を入れ替えただけなのですが、原因は不明です。
対象シートのシートモジュールに次のコードをコピーしてください。
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$B$1" Or Not IsNumeric(Target.Value) Then Exit Sub
If Target.Value < 1 Or Target.Value > Rows.Count - 2 Then Exit Sub
Rows("1:" & Target.Value + 2).Hidden = False
Rows(Target.Value + 3 & ":" & Rows.Count).Hidden = True
End Sub
一例です。
Sub sample1()
If Range("B1") = "" Then Exit Sub
Application.ScreenUpdating = False
Rows().Hidden = False
For Each c In Range("A3:A1000")
If c = "" Then Exit For
If c = Range("B1") Then
Rows(c.Row + 1 & ":" & Cells(Rows.Count, 1).End(xlUp).Row).Hidden = True
Exit For
End If
Next
Application.ScreenUpdating = True
End Sub
お礼
度々もありがとうございます。 完璧にできました。 本当にありがとうございます。