現在、Forループを用い、テキストボックスに1000個程度の値を出力することは出来ました。
しかし、それはループなどの処理が全て終わった後一気に出力されるという感じです。
私の理想は、ループが行われている間、その度に値を出力していってくれるものです。デバックの機能を使って一行ずつ処理を行っていけば私の理想通りなのですが、コンパイルして実行すると処理がおかしくなってしまいます。
私が作ったプログラムはこのようなものです。
Private Sub kaishi_Click()
Dim CountN As Long '測定回数
Dim TotalN As Long '測定終了回数
Dim Result As String '測定結果
Dim F1 As Single: Dim F2 As Single '測定値
Dim XRF1 As Double: Dim YRF1 As Integer 'グラフF1の座標
Dim XRF2 As Double: Dim YRF2 As Integer 'グラフF2の座標
TotalN = 5000
F1 = 15.59
F2 = 20.44
For CountN = 1 To TotalN
If CountN Mod 10 = 0 Then
XRF1 = CountN * GraphF1.Width / CInt(TotalN) 'プロットするX座標
YRF1 = 4000 - (4000 / 25 * F1) 'プロットするY座標
XRF2 = CountN * GraphF2.Width / CInt(TotalN) 'プロットするX座標
YRF2 = 4000 - (4000 / 25 * F2) 'プロットするY座標
Result = Result & CountN & " " & F1 & " " & F2 & vbCrLf
Number.Text = Result
'***グラフ描画***
GraphF1.FillColor = vbRed: GraphF1.FillStyle = 0: GraphF1.Circle (XRF1, YRF1), 30, vbRed
GraphF2.FillColor = vbBlue: GraphF2.FillStyle = 0: GraphF2.Circle (XRF2, YRF2), 30, vbBlue
End If
Next CountN
End Sub
何かアドバイスをお願いします。
Form.RefreshやDoEventsなど
画面描画に処理を戻す方法はいろいろあると思う。
DoEventsを使ったら上手くできました♪
ささき様、どうもありがとうございました。
ツイート | ![]() |