• ベストアンサー

実行中のログをフォームのテキストボックスに表示したい

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

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

テキストボックスに文字を設定した後にDoEventsを入れればいけると思います。 が、その他のExcelでの操作もできるようになってしまうので、注意が必要です。 詳しくはDoEventsをヘルプで調べてみてください。

adama2005
質問者

お礼

DoEventsを入れたら思うような状態になりました。 ありがとうございました。

その他の回答 (1)

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

ListBoxがお勧め

参考URL:
http://oshiete1.goo.ne.jp/kotaeru.php3?q=1108985
adama2005
質問者

お礼

これもいい手ですね。 ありがとうございます。

関連するQ&A