- ベストアンサー
MS-Excelでアクティブセル上に円を描くマクロ
お世話になります。 Microsoft Excelでアクティブセル上に円を描くマクロを作る方法を検討しています。 ツール -> マクロ -> 新しいマクロの記録 後にどのような操作をすれば可能でしょうか? ツール -> マクロ -> 新しいマクロの記録 にアクティブセル上に円を描いて 記録終了 すると、その時に描いた場所にいつも円を描くマクロになってしまいます。 その後にマクロのコードを編集する必要があるのでしょうか? よい方法をご存知のかたがありましたら、教えてください。 よろしくお願いします。
- みんなの回答 (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が分かりやすいと思います。
お礼
このようにアクティブセルの座標を取得するのですね。 不勉強で、分からない関数がありますが、目的は達成できそうです。 ありがとうございました。