• ベストアンサー

MS-Excelでアクティブセル上に円を描くマクロ

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

noname#224287
noname#224287

質問者が選んだベストアンサー

  • ベストアンサー
  • moon00
  • ベストアンサー率44% (315/712)
回答No.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
noname#224287
質問者

お礼

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

関連するQ&A

  • エクセルの、記録を終了したマクロに内容を追加したい

    エクセル操作の質問です。 マクロで、記録を終了した後に、そのマクロに内容を追加したい場合があります。 今までは… 1、追加したい内容を、別のマクロで記録する。 2、そのマクロの編集で、コードをコピーし、先のマクロの編集で貼り付け、保存する。 3、追加したマクロを削除する。 といった操作をしてきましたが、もっと簡単な方法はないものかと。 ご存知の方がおりましたら、宜しくお願いいたします。

  • Excelのマクロについて

    Excelのマクロについて excel2003で,マクロの自動記録を勉強中です。 [ツール]-[マクロ]-[新しいマクロの記録]でマクロ名を入力し,(マクロの保存先を「作業中のブック」として,)[OK]をクリックすると マクロの記録が始まります。 マクロの記録終了後, [ツール]-[マクロ]-[マクロ]で「マクロ」ダイアログボックスを見ると,マクロ名が表示されます。 この場合は実行も正常にできます。 しかし, ブックを一旦保存した後,開いて,マクロを実行しようと, [ツール]-[マクロ]-[マクロ]で「マクロ」ダイアログボックスを見ると,マクロ名が(マクロ名単独ではなく)ブック名とともに表示されます。 実行するとエラーになります。 何が悪いのか分かりません。なにか基本的なミスがあるのかも知れないと考えました。 原因(ミス)に心当たりのあるかた,是非教えてください。

  • エクセル記録マクロの作成の方法

    エクセル記録マクロの作成の方法 あるネット上でマクロ作成方法では、 ブックのsheet(1)をオートフィルターを利用し、データを抽出した物だけを、シートを追加し張り付けるやり方を、コード上では Selection.CurrentRegion.Select(1) Selection.Copy Sheets.Add Selection.PasteSpecial Paste:=xlValues(2) と記入がありました。 私が自動記録をすると、sheet(1)をコピー時は(1)可視セルのコピーを選択し、貼り付けをするときに(2)値のみにしておこなうと、上記のようなコードで自動記録はおこなわれません。 上記のコードを自動記録操作で作成させるのには、どのような操作記録をおこなったか教えてください。 ((1)についてはアクティブセルのコピーのようだとは理解しました。なぜか理解はできません。)

  • マクロを記録するときの、アクティブセルの扱いがよく分かりません

    パソコン教室で使っているテキストの問題を2つ解いているのですが、 A先生とB先生とで解説が異なっており混乱しています。 (1)『表の合計金額の高い順に並べ替えるマクロを作りなさい。   ※アクティブセルを最優先のキーとして並べ替えが行われるようにする事。』 (2)『表の書式をオートフォーマットで編集するマクロを作りなさい。   ※マクロは絶対参照で記録する。   ※アクティブセルで書式が変更されるようにする。』 A先生は、表内の対象(例1では合計金額)をクリックしてからマクロの記録を始めなさいと言います。 B先生は表の外をいったんクリックしておいて、記録を始めてから改めて対象のセルをクリックしなさいと言います。 どっちが模範解答とみなせばよいのでしょうか? VBEでいうRange(~)が必要か否かはっきりしません……よろしくお願いします。

  • エクセルのボタンにマクロの記録を設定できない

    エクセル97で、ある操作を「マクロの記録」に設定し終了した後、コマンドボタンを作成しました そのボタンで設定したマクロの記録を動作させたいのですがどうすれば出来るのか分かりません

  • エクセルのマクロについて教えて下さい

    エクセルで、データ(書類)のコピー貼り付けのマクロを組みました。 ツール→マクロで、新しいマクロの記録から、実際にコピーをして貼り付けをし、記録の終了をしました。 次に他のセルの場所でもそのマクロを実行して、何度も場所を変えてコピー貼り付けを実行したいのですが、操作用のボタンを作成して貼り付け、ボタンを押すと、同じ場所でコピー貼り付けを繰り返します。 たしか絶対参照とか相対参照とかあったような気がするのですが…。 どうすれば、他の場所でもボタンを押すだけでコピー貼り付けのマクロを実行できるようになりますか? よろしくお願いします。

  • エクセルのマクロで特定セル(最終セルの1つ下)への移動方法を教えて下さい

    エクセルでデータの最終セルのもう1つ下のセルに移動する マクロを作れますか?  例えば、住所録をリストで作成していたとします。 マクロを実行したら、新規レコードを入力するセル (*が入ってるセルです)にアクティブセルを移動する ・・・というマクロです。 コードの方法は教えてもらったのですが、コードがわからない方に 教えてあげたいのですが、マクロの記録でも同じことができますでしょうか?  よろしくお願いします!!

  • エクセルのマクロについて

    住所が入力してあるセルの左のセルに郵便番号を表示するには、ツール→ウィザード→郵便番号変換でできますが、一連の流れを、マクロにして、ボタンひとつで変換できるようにしたいと考え、試してみたのです。マクロを文章で書く能力はないので、マクロの記録ボタン→一連の操作→マクロの終了という一番簡単な方法で試してみました、しかし、できませんでした。こういう場合はどうすればできますか?

  • エクセルのマクロを削除したい....

    エクセルでマクロを作り過ぎてわけわからなくなってしまいました(^^; (つくったというより、記録させたヤツを使ってるだけですが) これらのマクロを削除する方法がわかりません。 「ツール」→「マクロ」→「マクロ」で現れる窓で、いらないマクロを選んで “削除”のボタンを押すのですが、 「表示されていないブックのマクロは編集できません。[ウィンドウ再表示] コマンドを選択して、ウィンドウを表示してください。」 とメッセージあります。 どうやったら、これらのマクロを削除できるのでしょうか??

  • EXCEL マクロボタンの出し方

    よろしくお願いします。 EXCELです。 今まで、マクロ自動記録を行っていましたが、 画面の中にあった。マクロのボタンがどこかに行ってしまいました。 ツール→マクロ→新しいマクロの記録 の後に画面出でてくる。 マクロボタンがどこかに行ってしまいました。 出し方を教えてください。 よろしくお願いします。

専門家に質問してみよう