Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim LSrc As Long, CSrc As Long, LCbl As Long, CCbl As Long, LBase As Long, LRel As Long
LSrc = Target.Row: CSrc = Target.Column
Select Case CSrc
Case 4
If LSrc < 2 Then Exit Sub
LRel = (LSrc - 2) Mod 4: LBase = LSrc - LRel
Target.Value = 4: Me.Cells(LSrc + 1 - (LRel Mod 2) * 2, CSrc).Value = Empty
LCbl = LBase + LRel \ 2 + 1
CCbl = 6
Case 7
If LSrc < 3 Then Exit Sub
LRel = (LSrc - 3) Mod 8: LBase = LSrc - LRel
If LRel Mod 4 > 1 Then Exit Sub
Target.Value = 4: Me.Cells(LSrc + 1 - (LRel Mod 2) * 2, CSrc).Value = Empty
LCbl = LBase + (LRel \ 4) * 2 + 1
CCbl = 9
Case 10
If LSrc < 4 Then Exit Sub
LRel = (LSrc - 4) Mod 16: LBase = LSrc - LRel
If LRel Mod 8 > 3 Then Exit Sub
Target.Value = 4: Me.Cells(LSrc + 2 - (LRel Mod 4) * 2, CSrc).Value = Empty
LCbl = LBase + LRel \ 4 + 4
CCbl = 12
Case 13
If LSrc < 8 Then Exit Sub
LRel = (LSrc - 8) Mod 32: LBase = LSrc - LRel
If LRel Mod 16 > 3 Then Exit Sub
Target.Value = 4: Me.Cells(LSrc + 2 - (LRel Mod 4) * 2, CSrc).Value = Empty
LCbl = LBase + LRel \ 8 + 8
CCbl = 15
Case 16
…
Case Else: Exit Sub
End Select
Cancel = True
Me.Cells(LCbl, CCbl).Select
End Sub