Select Case で少し問題が発生しています。名前付き範囲で動作するプログラムがあります。選択したケースが一連の名前付き範囲にない場合は、終了させたいです。ユーザーが有効なセルを選択したときに正しく実行されているコードは次のとおりです。
Private Sub WorkSheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("ActionDisplay")) Is Nothing Then
Select Case Target.Column
Case 5: Call Find_Action_RPI_Info
Case 6: Call Find_Action_RPI_Info
Case 7: Call Find_Action_RPI_Info
Case 8: Call Find_Action_RPI_Info
Case 9: Call Find_Action_RPI_Info
Case 10: Call Find_Action_RPI_Info
Case 11: Call Find_Action_RPI_Info
Case 12: Call Find_Action_RPI_Info
Case Else
End Select
End If
If Not Intersect(Target, Range("ActionTotalDisplay")) Is Nothing Then
Select Case Target.Column
Case 13: Call Action_Total_RPI_Info
Case Else
End Select
End If
If Not Intersect(Target, Range("TotalDisplay")) Is Nothing Then
Select Case Target.Column
Case 5: Call CM_Action_Total_RPI_Info
Case 6: Call CM_Action_Total_RPI_Info
Case 7: Call CM_Action_Total_RPI_Info
Case 8: Call CM_Action_Total_RPI_Info
Case 9: Call CM_Action_Total_RPI_Info
Case 10: Call CM_Action_Total_RPI_Info
Case 11: Call CM_Action_Total_RPI_Info
Case 12: Call CM_Action_Total_RPI_Info
Case Else
End Select
End If
If Not Intersect(Target, Range("GroupTotal")) Is Nothing Then
Select Case Target.Column
Case 13: Call GroupDisplay
Case Else
End Select
End If
If Not Intersect(Target, Range("PastDue")) Is Nothing Then
Select Case Target.Column
Case 7: Call PastDueDisplay
Case 8: Exit Sub
Case 9: Call PastDueDisplay
Case 10: Exit Sub
Case Else
End Select
End If
If Not Intersect(Target, Range("PastDueTotal")) Is Nothing Then
Select Case Target.Column
Case 7: Call PastDueTotalDisplay
Case 8: Exit Sub
Case 9: Call PastDueTotalDisplay
Case 10: Exit Sub
Case Else
End Select
End If
End Sub
したがって、基本的に上記の範囲のいずれにもない場合は、プログラムを終了させたいと思います。私が試みていることを行うためのより良い方法があると確信していますが、私はこれらすべてを自分自身に教えているので、完璧ではないと確信しています.