- ベストアンサー
Excel VBA 半円を描くサブルーチンについて
はじめまして。課題がわからないので教えて頂きたく質問しました。 ExcelでツールのマクロからVisual Basicを使って半円を描くサブルーチンを示せ。という課題です。円を描くことはできるのですが、どうしたら半円になるのかわかりません。 初心者なのでわかりやすく説明して頂けると嬉しいです。よろしくお願いします。
- hatenasan606
- お礼率100% (5/5)
- オフィス系ソフト
- 回答数1
- ありがとう数1
- みんなの回答 (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
関連するQ&A
- VBAについて教えて頂けませんか?
昨日から、エクセル2003を使ってVBAを、勉強している者です。 ネット上で調べながら、取合えず簡単なVBAを入れる事が出来ました、ですがエラーばかりで、どうしても先に行けず困っています。 ネット上で参考になる、VBAなどを見て思ったのですが エクセルのVisual Basicを開くと、左側に「Sheet1」とか「Module1」等があります。 参考になるVBAでは、「Sheet1」に書かれているのがあれば、「Module1」に書かれているのもあります。 VBAは「Sheet1」に、書き込まれるべきなのでしょうか?それとも 「Module1」に、書き込まれるべきなのでしょうか? 私の場合、例えば「1」「2」「3」と数字を打ってマクロの記録をして、Visual Basicを開くと、すべて「Module1」に書き込まれます。 すみませんが、教えて頂けませんか?
- ベストアンサー
- Windows XP
- エクセル VBAについて
現在エクセルのVBAを勉強したいと考えています。 VBAを使用するにはVisual Basicをインストールしないといけないのでしょうか?普通にエクセルをインストールしてさえいれば使用できるのでしょうか?
- ベストアンサー
- Windows Vista
- 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つが出てきます。 こんな時は、どうすれば直るのでしょうか? どなたか作業の仕方を教えていただけないでしょうか。
- ベストアンサー
- Visual Basic
- マクロが働かず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内の変更で実行というものはみつかりませんでした。 どのようにすれば良いのでしょうか? よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
お礼
早速の回答ありがとうございます。期限が近かったので助かりました。 解説まで付けて頂いたお陰でプログラムの意味もよくわかりました。本当にありがとうございました。