1
私の息子(15歳)は、学校、物理学の授業で振り子を勉強しています。私は、2点チャート、1つの修正(振り子の「コード」が付いていて、時間内に動くもの(振り子))を使用して、Excelのシミュレートされた振り子を手助けしようとしています。Excel VBA(Excel 2016)のグラフをリフレッシュできません
計算はOKですが私はグラフが爽やかでない理由を理解できません: "振り子"が動かない...私はExcelのグラフをリフレッシュすることでスタックのオーバーフローに関する複数の記事を読んだが、 ?アイデア
ここでコード
Option Explicit
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Const g = 9.80665 'gravity constant
Const PI = 3.14159265358979
Sub TestSimple()
'Declare variables
Dim l 'lenght of pendulum
Dim Tô1 'start angle
Dim Tôi 'angle of pendulum at time i
Dim x 'coordonnates of pendulum on x axis
Dim y 'coordonnates of pendulum on y axis
Dim Omega 'Sqr(g/l)
Dim t 'time
Dim s, phi
'-1- Initialization of variables
l = 0.7 'length is 70 cm
Omega = Sqr(g/l)
Tô1 = PI/6 '30 degrees at start
'**** NOTE ****
'Equation of pendulum angle in function of time is
'Tô(t)=Tô1*cos(Wo.t) were Wo = sqrt(g/l) = Omega
'**************
'Calculation of time needed for 1 calculation
s = Timer
t = 2
Tôi = Tô1 * Cos(Omega * t)
x = l * Sin(Tôi)
y = 1 - l * Cos(Tôi)
'paste x and y value into spreadsheet
Worksheets(1).Range("A3").Value = x
Worksheets(1).Range("B3").Value = y
'refresh chart
ActiveSheet.ChartObjects("Chart 1").Chart.Refresh
phi = Timer - s
'-2- Simulation for 10 seconds
For t = 0 To 10 Step phi
'position of pendulum in function of time
Tôi = Tô1 * Cos(Omega * t)
x = l * Sin(Tôi)
y = 1 - l * Cos(Tôi)
'paste x and y in spreadsheet
Worksheets(1).Range("A3").Value = x
Worksheets(1).Range("B3").Value = y
'refresh of chart
ActiveSheet.ChartObjects("Chart 1").Chart.Refresh
Sleep (50) 'let machine sleeps for 50 milliseconds, for a smoother look
Next t
End Sub
OK、ありがとうございます。できます。 – FredC
@FredC心配はいりませんが、答えの隣に緑色のダニを打つことを忘れないでください。あなたの息子を助けることを願っています – User632716