Sub CommandButton1_Click()
Dim sr As Long
Dim cr, d As Double
d = ActiveSheet.Cells(1, 2).Value
For sr = 10 To 300 Step 10
'sr: 球の半径
cr = Sqr(sr ^ 2 - d ^ 2)
'cr: 断面に現れる円の半径
ActiveSheet.Shapes.AddShape(msoShapeOval, 320 - cr, 320 - cr, cr * 2, cr * 2).Select
Selection.ShapeRange.Fill.Transparency = 1#
Selection.ShapeRange.Line.Visible = msoTrue
ActiveCell.Activate
Cells(sr / 10, 13).Value = cr
'M列に実際の断面上の円の半径を表示
Next
End Sub
Private Sub CommandButton2_Click()
ActiveSheet.Range("M:M").Value = ""
For i = ActiveSheet.Shapes.Count To 1 Step -1
If ActiveSheet.Shapes(i).Type <> 12 Then ActiveSheet.Shapes(i).Delete
Next i
End Sub
|