電子書籍の厳選無料作品が豊富!

エクセルでB4:E7,H8:I8,H9:I9,K8:L9,B10:D11,F10:H11,K10:M11,E13:F13,A15
上記セルに入力された場合は17から18. 21から26の行を非表示にすると言うマクロを組みたいのですがどうすれば良いでしょうか

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

  • tomさん早速の回答ありがとうございます!
    ごめんなさい非表示ではなく再表示でした

      補足日時:2020/07/24 11:12
  • ありがどうございます!
    できました!

      補足日時:2020/07/24 11:58

A 回答 (2件)

No.1です。



単に行を再表示させるだけで良いのですね。

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim myRng As Range
  Set myRng = Range("B4:E7,H8:I8,H9:I9,K8:L9,B10:D11,F10:H11,K10:M11,E13:F13,A15")
   If Not Intersect(Target, myRng) Is Nothing Then
    ActiveSheet.Rows.Hidden = False
   End If
End Sub

※ 非表示に関しては何も手を付けていません。

とりあえずはこんな感じで・・・m(_ _)m
    • good
    • 0

こんにちは!



上記範囲以外の入力の場合は再表示で良いのでしょうかね?

一例です。
シートモジュールにしてください。

Private Sub Worksheet_Change(ByVal Target As Range)
 Dim myRng As Range
  Set myRng = Range("B4:E7,H8:I8,H9:I9,K8:L9,B10:D11,F10:H11,K10:M11,E13:F13,A15")

   With Range("A17:A18,A21:A26")
    If Not Intersect(Target, myRng) Is Nothing Or Target.Count > 1 Then
     .EntireRow.Hidden = True
    Else
     .EntireRow.Hidden = False
    End If
   End With
End Sub

こんな感じではどうでしょうか?m(_ _)m
    • good
    • 0

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