- 締切済み
EXCELのVBAマクロについて
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 「この課題は必修ではないので教わっていないコードも出てくるらしいです。」 ふだん、ここの回答者は、学校の宿題のようなものは回答しないのが建前なのですが、最近、同様の質問がありましたので、いつくかの方法でマクロを作ってみました。 どういう前提があるのか分かりませんので、かなりコードとして変わってくると思います。結局、VBA自体で作るよりは、ワークシート関数を貼り付けるほうがよいと思いました。 なお、どうみても、グラフが違うようですが。 なお、以下の二つのマクロは、両方とも欠けている部分があります。ふたつのマクロを比べてみれば分かります。グラフにするには問題はないものの、プログラミングとしては、どちらも正答だとは言えないかもしれません。一般的には、Macro1 の方が修正しやすいはずです。 '--------------------------------------- Sub Macro1() Dim i As Long Cells(1, 1).Value = "度" Cells(1, 2).Value = "sinθ" Cells(1, 3).Value = "cosθ" Cells(1, 4).Value = "sinθ+cosθ" i = 1 '行数 Do Cells(i + 1, 1).Value = (i - 1) * 5 '角度 Cells(i + 1, 2).Formula = "=SIN(RADIANS(RC[-1]))" Cells(i + 1, 3).Formula = "=COS(RADIANS(RC[-2]))" Cells(i + 1, 4).Formula = "=RC[-2]+RC[-1]" i = i + 1 Loop Until (i - 1) * 5 > 360 '360度まで End Sub '-------------------------------- Sub Macro2() Dim d As Long Dim i As Long Dim Pi As Double Pi = 4 * VBA.Atn(1) Cells(1, 1).Value = "度" Cells(1, 2).Value = "sinθ" Cells(1, 3).Value = "cosθ" Cells(1, 4).Value = "sinθ+cosθ" i = 1 Do d = (i - 1) * 5 Cells(i + 1, 1).Value = d Cells(i + 1, 2).Value = Sin(d * Pi / 180) Cells(i + 1, 3).Value = Cos(d * Pi / 180) Cells(i + 1, 4).Value = Cells(i + 1, 2).Value + Cells(i + 1, 3).Value i = i + 1 Loop Until d >= 360 End Sub '------------------------------------------
- n-jun
- ベストアンサー率33% (959/2873)
このグラフを作る上で、VBAはどこで使う事になっているのでしょうか? たとえば一度マクロの自動記録を取ってみて、それから変更を加えてみるとか? 課題だと条件に合わない(教わっていない)コードでは無理ですよね?
補足
「VBAマクロを使って 度 sinθ cosθ sinθ+cosθのデータを表示する」のが課題で、グラフを表示する際にVBAは用いりません。 この課題は必修ではないので教わっていないコードも出てくるらしいです。 よろしくお願いします。