このコードを試してください。ThisWorkbook
モジュールに配置する必要があります。
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim wsTarget As Worksheet
If Left(Target, 2) <> "TC" Then Exit Sub
On Error GoTo ErrorHandler1
If UCase(Left(Sh.Name, 3)) = "SUB" Then
Set wsTarget = Sheets("Main")
Else
Set wsTarget = Sheets("SUB" & _
IIf(CInt(Mid(Target.Value, 3)) <= 30, 1, 2))
End If
wsTarget.Activate
On Error GoTo ErrorHandler2
wsTarget.Cells.Find(Target.Value, wsTarget.Range("A1")).Activate
Exit Sub
ErrorHandler1:
MsgBox "Cannot identify target sheet from " & Target
Exit Sub
ErrorHandler2:
MsgBox "Cannot find " & Target & " in sheet " & wsTarget.Name
End Sub