意味を取り違えてるかもしれないけど
エクセルのシェープ3つのマクロ関数により作ってみました。
後は公式に当てはめるだけ、セルを参照はしていないのであしからず。
'''''''''''''''''
'''''''''''''''''
Function tyoku_XY(siten_X As Single, siten_Y As Single, syuten_X As Single, syuten_Y As Single)
'x200 y200より初めのxy座標を描きます'
ActiveSheet.Shapes.AddLine(siten_X, siten_Y, syuten_X, syuten_Y).Select
End Function
''''''''''''''''''
''''''''''''''''''
Function tyoku(siten_X As Single, siten_Y As Single, syuten_X As Single, syuten_Y As Single)
'xy交点を軸に直線を描きます
Dim ax, ay, bx, by As Single
ax = 400 + siten_X
ay = 400 + (siten_Y * -1)
bx = 400 + syuten_X
by = 400 + (syuten_Y * -1)
ActiveSheet.Shapes.AddLine(ax, ay, bx, by).Select
End Function
'''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''
Function en(kei As Single)
' 円を描きます 引数は直径
x = 400 - (kei / 2)
ActiveSheet.Shapes.AddShape(msoShapeOval, x, x, kei, kei).Select
Selection.ShapeRange.Fill.Visible = msoFalse
Selection.ShapeRange.Fill.Transparency = 0#
Selection.ShapeRange.Line.Weight = 0.75
End Function
'''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''
'''''''''''''以下より主実行部''''''''
'''''''''''''''''''''''''''''''''''''
Sub main()
'X Yを描きます
Call tyoku_XY(400, 200, 400, 600)
Call tyoku_XY(200, 400, 600, 400)
'直線を描きます
Call tyoku(100, -100, -100, 100)
'円Aを描きます
Call en(200)
'円A半径100に正弦45度を描きます。
Dim x As Single
x = 100 * Sin(45 * (3.14159265358979 / 180))
Call tyoku(0, 0, x, x)
End Sub
''''''''''''''''''''''''''''''''
EXCEL2000で作成したので参考程度です。
お礼
回答ありがとうございます。 マクロだとこうやって作るんですね。 勉強になりました。
補足
=SIN()と=COS()を利用して作ろうと思っていて、角度を0度から10度刻みで400度までのラジアンを表にしてあります。 これからαとβの値を総当たりするとものすごい量になってしまうので何か良い方法はないかなと思い質問させていただきました。