アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCEL VBA利用で以下組まれてます。

Case "P32"
For Each sp In ActiveSheet.Shapes
If sp.Name = Target.Address Then
sp.Delete
Exit Sub
End If
Next
Set sp = ActiveSheet.Shapes.AddShape(msoShapeOval, 147#, 434.25, 9.75, 9#)
sp.Fill.Visible = msoFalse
sp.Name = Target.Address

セルP32ダブルクリックで、
P32内の頭文字あたりに、挿入図形の円(黒ふち塗りつぶしなし)が入り、
選択の記号に○が入る様に組まれているのですが…

8行目(msoShapeOval, 147#, 434.25, 9.75, 9#)の
147#, 434.25, 9.75, 9#部分があまり意味がわかりません。

座標をとって、図形が入る様になるのであれば、
座標の取り方を知りたいのですが…方法があれば教えていただきたいです。

宜しくお願い致します。

A 回答 (2件)

以下のようになります。


'Shapes.AddShape(Type, Left, Top, Width, Height)

この元になるのは、セルのオブジェクトです。
Left, Top,
左位置、上位置 で、場所が決まります。
Width, Height
幅と高さで大きさが決まります。大きさは、最初から決めていますので、後は、左と上の位置だけを決めればよいわけです。

'//シートモジュール
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Dim Adr As String
 Dim sp As Shape
 Cancel = True
 Adr = Target.Address(0, 0)
 For Each sp In Me.Shapes
  If sp.Name = Adr Then
   sp.Delete
  Exit Sub
  End If
 Next
 With Target '座標のとり方
  With Me.Shapes.AddShape(msoShapeOval, .Left, .Top + 2, 9.75, 9#)
   .Fill.Visible = msoFalse
   .Name = Adr
  End With
 End With
End Sub
    • good
    • 0

>座標をとって、図形が入る様になるのであれば、


座標を横147、縦434.25で取って図形が入ってますよ。

それとも
Set sp = ActiveSheet.Shapes.AddShape(msoShapeOval, Target.Column * 54 - 30, Target.Row * 13.5 - 11, 9.75, 9#)
のことですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!