ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

EXCEL VBAコミュのセルの値を順次フォームで表示したいのですが・・・・

  • mixiチェック
  • このエントリーをはてなブックマークに追加
セルの値を、フォームに順次表示させるのに、
下記コードを作りました。
一応動くのですが、
セルが多いと、途中で止まってしまいます。
運がよければ(?)最後までいけます。
とまる行は、不定です。
WinXPのノートパソコンなんですが
メモリが足らないのでしょうか?
それともコードがどこかおかしいのでしょうか?

Private Sub imgBOX_Click()
Dim i As Long
Dim s As Integer

s = Sheets("menu").Range("K1") '待つ時間(秒)

i = 2

Do While i <= Range("D1").Value 'Range("D1") 問題数
Label3.Caption = Worksheets(2).Range("C" & i)

Application.Wait Now() + TimeSerial(0, 0, s)

Label3.Caption = ""

i = i + 1
Loop

End Sub

ご意見よろしくお願いいたします。

コメント(4)

とりあえず、再描画させてみてください。

  Label3.Caption = ・・・
の後に
  Me.Repaint
です。
ビリ−さん
早々のレスありがとうございました。

違う方向で考えてみました。

これだと止まる事無く走ってます。

Private Declare Function timeGetTime Lib "winmm.dll" () As Long

------------------------------------------------------------------

Private Sub CommandButton0_Click()

CommandButton0.Visible = False


Dim i As Long
Dim s As Long

s = Sheets("menu").Range("K1") '待つ時間(1秒=1000)

i = 2

Do While i <= Range("D1").Value 'Range("D1") 問題数
Label3.Caption = Worksheets(2).Range("C" & i)

WaitTime s:

i = i + 1
Loop

Label3.Caption = ""

End Sub


Me.RepaintはUserFormを強制表示するのでは?
上記追加コードです

Private Sub WaitTime(st As Long)
'指定の時間待つ(1/1000 秒単位で指定)
Dim lngSt As Long
lngSt = timeGetTime
Do While timeGetTime - lngSt < st
DoEvents
Loop
End Sub
止まるの定義は?
プログラムが止まるのと、画面更新が止まるのとでは
大違いです。

後者の場合は、Repaintで合っています。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

EXCEL VBA 更新情報

EXCEL VBAのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。