|    | 
     おはようございます。 
 
>マクロでデータチェックを実施している際に 
>フォームで「データチェック中・・・」と表示したいのですが 
 
例えば、以下のコードは、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 
 | 
     
    
   |