dポイントプレゼントキャンペーン実施中!

お世話になります。
Microsoft Excelでアクティブセル上に円を描くマクロを作る方法を検討しています。
ツール -> マクロ -> 新しいマクロの記録
後にどのような操作をすれば可能でしょうか?

ツール -> マクロ -> 新しいマクロの記録
にアクティブセル上に円を描いて
記録終了
すると、その時に描いた場所にいつも円を描くマクロになってしまいます。
その後にマクロのコードを編集する必要があるのでしょうか?
よい方法をご存知のかたがありましたら、教えてください。

よろしくお願いします。

A 回答 (1件)

マクロのコードを見て下さい。


こんな感じのコードがないですか?

ActiveSheet.Shapes.AddShape(msoShapeOval, x1, y1, r, r).Select

これのx1、y1の位置に入ってる数字が図形の左上のポイントになります。
(円の場合、これを選択したときにでる「□」の左上です)
「マクロの記録」を使った場合、ここにその時の数字がそのまま入ってると思います。
なので、アクティブセルから座標を取得する必要があります。
アクティブセルのどの位置を図形のどの位置に合わせるのか分からないので
ヒント程度に見て下さい。

Dim x As Integer
Dim y As Integer
Dim x1 As Integer
Dim y1 As Integer

x = ActiveCell.Column
y = ActiveCell.Row

x1 = Range(Cells(1, 1), Cells(y, x)).Width
y1 = Range(Cells(1, 1), Cells(y, x)).Height

ActiveSheet.Shapes.AddShape(msoShapeOval, x1, y1, r, r).Select
      '「r」には円の半径が入ります。
End Sub

これだとアクティブセルの左下と描きたい図形の左上が一致します。
アクティブセルの座標の取り方については参考URLが分かりやすいと思います。

参考URL:http://www2s.biglobe.ne.jp/~iryo/vba/VBA14b.html
    • good
    • 1
この回答へのお礼

このようにアクティブセルの座標を取得するのですね。
不勉強で、分からない関数がありますが、目的は達成できそうです。
ありがとうございました。

お礼日時:2002/12/05 15:12

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