> 以下のソースの赤文字のところが実行されずに
それはどうやって確認されましたか?
step実行してみてください。
実行はされていますが、同名のShapeが既にあり、
その古い方のShapeに対して処理が行われているはずです。
そして肝心の二回目に作成したShapeには処理がされないので、
>ワークシートの左上あたりにオートシェイプが表示されてしまいます。
ということになっているのです。
色々な対応方法があるかと思いますが、
例えば以下のようにすることが考えられます。参考にしてみてください。
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim s As String
Dim shp As Variant
'"F9:L12"以外のセルなら直ぐに終了。
If Intersect(Target, Range("F9:L12")) Is Nothing Then Exit Sub
Cancel = True
s = Target.Address
'同名のShapeが既にあれば、終了。
On Error Resume Next
Set shp = ActiveSheet.Shapes(s)
If Not IsEmpty(shp) Then
On Error GoTo 0
Exit Sub
End If
On Error GoTo 0
'Shapeを作成し、Addressを名称にセット
ActiveSheet.Shapes.AddShape(msoShapeOval, 10, 10, 20, 20).Name = s
With ActiveSheet.Shapes(s)
.Top = Target.Top
.Left = Target.Left + 18
.Fill.Visible = msoFalse
.Line.ForeColor.RGB = vbBlack
.Line.Weight = 3
End With
End Sub