• ベストアンサー

Excel VBA 半円を描くサブルーチンについて

はじめまして。課題がわからないので教えて頂きたく質問しました。 ExcelでツールのマクロからVisual Basicを使って半円を描くサブルーチンを示せ。という課題です。円を描くことはできるのですが、どうしたら半円になるのかわかりません。 初心者なのでわかりやすく説明して頂けると嬉しいです。よろしくお願いします。

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

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

角度を0-180度に変化させて(Step数-1だけ間引いて)、XとY座標を計算し 前の点と今回の点の間に線を引くことを切り返してます。 最後に直径の直線を引いてます。 SIN・COSを使う場合は角度はラヂアンで入れる必要があります。半径は100、中心は200,200です。 ActiveSheet.DrawingObjects.Delete はテスト時に上手く行かなかった図を消すためのものです。 Sub test01() ActiveSheet.DrawingObjects.Delete pai = 3.14159265 For i = 0 To 180 Step 3 x = 100 * Cos(i * pai / 180) y = 100 * Sin(i * pai / 180) ActiveSheet.Shapes.AddLine mx + 200, -my + 200, x + 200, -y + 200 mx = x my = y Next i ActiveSheet.Shapes.AddLine 100 + 200, 0 + 200, -100 + 200, 0 + 200 End Sub

hatenasan606
質問者

お礼

早速の回答ありがとうございます。期限が近かったので助かりました。 解説まで付けて頂いたお陰でプログラムの意味もよくわかりました。本当にありがとうございました。

関連するQ&A

  • 半円の描き方

    ワード(エクセル)で半円を描くにはどうしたらよいでしょうか? 円をきっちり半分にした形を描いて、中を塗りつぶしたいので、 線の曲線&直線や、コネクタではキレイな半円がどうしうても描けず、 塗りつぶす事もできません。 何か方法をご存知に方教えてください よろしくお願いいたします。

  • VBAについて教えて頂けませんか?

    昨日から、エクセル2003を使ってVBAを、勉強している者です。 ネット上で調べながら、取合えず簡単なVBAを入れる事が出来ました、ですがエラーばかりで、どうしても先に行けず困っています。 ネット上で参考になる、VBAなどを見て思ったのですが エクセルのVisual Basicを開くと、左側に「Sheet1」とか「Module1」等があります。 参考になるVBAでは、「Sheet1」に書かれているのがあれば、「Module1」に書かれているのもあります。 VBAは「Sheet1」に、書き込まれるべきなのでしょうか?それとも 「Module1」に、書き込まれるべきなのでしょうか? 私の場合、例えば「1」「2」「3」と数字を打ってマクロの記録をして、Visual Basicを開くと、すべて「Module1」に書き込まれます。 すみませんが、教えて頂けませんか?

  • エクセル VBAについて

    現在エクセルのVBAを勉強したいと考えています。 VBAを使用するにはVisual Basicをインストールしないといけないのでしょうか?普通にエクセルをインストールしてさえいれば使用できるのでしょうか?

  • 作ったVBAの件

    初心者です。Excel2002のVisual Basic Editorで書いたマクロ文をツール-マクロ-マクロに移す(登録する)にはどうやればいいのでしょうか。

  • Excelで”A=A+1”のような式を書きたい

    例えば ”A1”のセルに”A1+B2”の式を入れたいのです。”A1=A1+B2” マクロは少しできますが、この様な式は関数も見あたらないので visual basicで書かなければいけないのでしょうか その場合はどの様にすれば書けるのでしょうか ツール→マクロ→visual basic editorで 黒いページしか出てきません。

  • VBAについて教えて下さい。

    VBAの事について教えて下さい。 初心者です。本で読んだのですが、エクセルのツールから、 マクロ→Visual Basic Editorをクリックすると、 Microsoft Visual Basic‐Book1と言う画面で、 左側に VBA Project(Book1)と言う画面になるとなっていますが、 Microsoft Visual Basic‐Excel_JSV7.xlaと言う画面になり、 Excel_JSV7.xla‐JSV7Transk JSheet(コード)と他に2つが出てきます。 こんな時は、どうすれば直るのでしょうか?  どなたか作業の仕方を教えていただけないでしょうか。

  • マクロが働かずMicrosot Visual Basic が立ち上がります。

    表記の通りなのですが、初心者です。お教えください。 仕事上で他の人がExcelをつかってマクロでソフトを作りました。しかし、私が立ち上げようとするとVisual Basicが立ち上がってしまいます。どうしたらマクロが働くようになるのでしょうか?

  • エクセルVBAで内容変更のたびに自動実行するには?

    エクセルVBAでBOOK1のsheet1とsheet2とsheet3とsheet4があり、 sheet1とsheet2とsheet3の全ての情報をsheet4にコピーしてまとめるようにしました。 マクロを実行するには、Visual Basicを開いてF5を押しています。 それをsheet1かsheet2かsheet3の中身の一部分でも変更すると そのときに自動的にマクロが実行されるようにしたいです。 エクセルを開いたときやsheetをアクティブにしたとき、日時を指定して実行させる という説明はみつけましたが、sheet内の変更で実行というものはみつかりませんでした。 どのようにすれば良いのでしょうか? よろしくお願いいたします。

  • エクセルのマクロとVBA。

    エクセルのマクロとVBAを初心者の人に分かりやすく説明するにはどのような例を挙げて説明すればいいでしょうか?

  • EXCEL

    本当に初心者な質問ですいませんが、エクセルのマクロは Visual Basic.NETで作れるんでしょうか?それから独学でマクロを学習する上で役に立った参考書などがありましたら教えてください。

専門家に質問してみよう