|
おはようございます。
>マクロでデータチェックを実施している際に
>フォームで「データチェック中・・・」と表示したいのですが
例えば、以下のコードは、A列にランダムな数値を配置し、
5000より、大きい値には、対応B列にokと表示するコードですが、
このコード実行中にユーザーフォームで、
「データチェック中・・・」と表示したいと言うことですか?
Sub データチェック()
Dim rng As Range
With Columns(1)
.Formula = "=int(rand()*10000)+1"
.Value = .Value
For Each rng In .Cells
If rng.Value > 5000 Then
rng.Offset(0, 1).Value = "ok"
End If
Next
End With
End Sub
そうだとすると・・・、
データチェック中・・・とラベルを配置したユーザーフォームをUserForm1とした場合、
以下のコードだと、
>フォーム内のラベルが真っ白になって何も見えない状態です。
と言う現象になります。
Sub データチェック()
Dim rng As Range
UserForm1.Show vbModeless
With Columns(1)
.Formula = "=int(rand()*10000)+1"
.Value = .Value
.Offset(0, 1).ClearContents
For Each rng In .Cells
If rng.Value > 5000 Then
rng.Offset(0, 1).Value = "ok"
End If
Next
End With
Unload UserForm1
End Sub
以下のようにDoeventsを入れると正常にユーザーフォームが表示されるはずです。
Sub データチェック()
Dim rng As Range
UserForm1.Show vbModeless
DoEvents
With Columns(1)
.Formula = "=int(rand()*10000)+1"
.Value = .Value
.Offset(0, 1).ClearContents
For Each rng In .Cells
If rng.Value > 5000 Then
rng.Offset(0, 1).Value = "ok"
End If
Next
End With
Unload UserForm1
End Sub
|
|