- ベストアンサー
実行中のログをフォームのテキストボックスに表示したい
excel2000のVBAでフォームのテキストボックスに実行ログを表示させていのですが、以下のものだと全ての処理が終了したときに表示されてしまいます。 私が望むのは、イミディエイト風に現在の実行状況(一行づつ)を表示したいのですが、アドバイスをお願いします。 Private Sub bA_Click() nCnt = ActiveWorkbook.Worksheets.Count For I = 1 To nCnt With ActiveWorkbook If (.Worksheets(I).Name = "A") Then Call Update_All(.Worksheets(I).Name) End If End With Next I End Sub Function Update_All(sSheetName As String) Call DB_Connect(Connect) Set Myws = DBEngine.CreateWorkspace("ODBC", "User", "Password", dbUseODBC) Set Myco = Myws.OpenConnection("", dbDriverNoPrompt, False, Connect$) Myco.QueryTimeout = 3600 With Worksheets(sSheetName) Do Until (.Cells(I, 1) = "") For J = 3 To 24 If .Cells(I, J) > 0 Then PRICE = .Cells(I, J) Spproc$ = "UPDATE AAA SET A.MPRIC=CONVERT(INT,A.WEGT*" & PRICE & "+0.5) " & "FROM AAA A,BBB B " tLOG.SelText = Format(Now(), "hh:mm:ss") & Chr(9) & "更新開始・・・" & vbCrLf Set Myset = Myco.OpenRecordset(Spproc$, dbOpenDynamic, 0, dbOptimistic) Myset.Close tLOG.SelText = Format(Now(), "hh:mm:ss") & Chr(9) & "更新終了・・・" & vbCrLf End If Next I = I + 1 Loop End With Myco.Close Myws.Close End Function
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
テキストボックスに文字を設定した後にDoEventsを入れればいけると思います。 が、その他のExcelでの操作もできるようになってしまうので、注意が必要です。 詳しくはDoEventsをヘルプで調べてみてください。
その他の回答 (1)
- todo36
- ベストアンサー率58% (728/1234)
お礼
DoEventsを入れたら思うような状態になりました。 ありがとうございました。