(VB6.0) Forループを用い,テキストボックスに値をその度出力するには?

解決


ねこ  2007-06-22 11:34:30  No: 99055

現在、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

  何かアドバイスをお願いします。


ささき  2007-06-22 18:50:24  No: 99056

Form.RefreshやDoEventsなど
画面描画に処理を戻す方法はいろいろあると思う。


ねこ  2007-06-22 21:25:15  No: 99057

DoEventsを使ったら上手くできました♪

ささき様、どうもありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加