質問者が納得提示のマクロを自分なりに修正したところ、試した限りではそれっぽい動作にはなりました。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim Rng As Range, sh As Shape, Flg As Boolean
Set Rng = Target(1)
If Intersect(Rng, Me.Range("D9:F23")) Is Nothing Then ...