• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:2つのVBAを組み合わせる方法)

2つのVBAを組み合わせる方法

このQ&Aのポイント
  • 2つのVBAを組み合わせる方法についての質問です。
  • 2つのPrivate Sub Worksheet_Change(ByVal Target As Range)イベントのVBAを組み合わせる方法を教えてください。
  • 具体的な組み合わせ方について詳しく教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

>If Intersect(Target, Range("C1,B9:B39")) Is Nothing Or Target.Count > 1 Then Exit Sub 条件に合わない場合、Exit Subで抜けるのではなく、条件に合う場合、実行するという風に直せば考え方として簡単です。 例:Not Intersect(Target, Range("C1,B9:B39")) Is Nothing Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long, k As Long, myNum As Long If Not Intersect(Target, Range("C1,B9:B39")) Is Nothing And Target.Count = 1 Then Application.EnableEvents = False With Target If .Column = 3 Then myNum = WorksheetFunction.Max(Range("B9:B39")) If IsDate(.Value) Then For i = 9 To 39 If Cells(i, "A").Value = "" Then Cells(i, "B").Value = "" Else Cells(i, "B") = myNum + i - 8 End If Next i End If Else i = .Row If .Value = "" Then Range(Cells(i + 1, "B"), Cells(39, "B")).ClearContents Else For k = i + 1 To 39 If Cells(k, "A").Value = "" Then Cells(k, "B").Value = "" Else Cells(k, "B") = Cells(k - 1, "B") + 1 End If Next k End If End If End With Application.EnableEvents = True ElseIf Not Intersect(Target, Range("R8:R38")) Is Nothing Then Application.EnableEvents = False Range(Cells(Target.Row, 18), Cells(39, 18)).Value = Target.Value Application.EnableEvents = True End If End Sub

noname#247334
質問者

お礼

凄いです、確かに2つのVBAが作動する様になりました。 この度はありがとうございました、非常に助かります。

関連するQ&A