0

VBAでは、リストボックスの内容を着実に成長しているテキストファイルのテキストで繰り返し更新しています。リストボックスを更新するために行っているループの実行中に、ユーザーが制御を維持できるようにする方法はありますか(リストボックスをスクロールし、ボタンを押します)?application.waitの代わりに使用することもできます。のように、更新-> x秒待ちます(ユーザーはまだ何かを行うことができます->再度更新します->繰り返します。

4

1 に答える 1

1

これが始まりです。通常のモジュールで、次のコードを貼り付けます。

Sub ShowUserForm()
UserForm1.Show vbModeless
End Sub

Sub UpdateTextBox()
Dim ws As Excel.Worksheet

Set ws = ThisWorkbook.Worksheets(1)
With UserForm1.ListBox1
    .List = ws.Range("A1:A" & ws.Range("A" & ws.Rows.Count).End(xlUp).Row).Value2
    .ListIndex = .ListCount - 1
End With
Application.OnTime Now + TimeValue("00:00:5"), "UpdateTextBox"
End Sub

ユーザーフォームで、次のコードをUserForm_Activateイベントに貼り付けます。

UpdateTextBox

ブックのSheet1の列Aの値をコードで更新します。

テストするには、ShowUserFormを実行します。

于 2012-01-10T21:39:23.467 に答える