tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトル間隔をあけて表示(VBA)
記事No14184
投稿日: 2009/10/19(Mon) 10:16
投稿者レン
初心的な質問で申し訳ないのですが
3秒ごとにテキストボックスに1・2・3を表示するプログラムを作ろうと思うのですが

text1.Text = "1"
Sleep 3000

text1.Text = "2"
Sleep 3000

text1.Text = "3"


↑のように書くと
最初に現れる文字が3になってしまいます。
1・2・3を表示させるにはどうしたらよいのですか?

(XP:Excel2002 )

[ツリー表示へ]
タイトルRe: 間隔をあけて表示(VBA)
記事No14185
投稿日: 2009/10/19(Mon) 11:52
投稿者魔界の仮面弁士
> 3秒ごとにテキストボックスに1・2・3を表示するプログラムを作ろうと思うのですが

手抜き実装としては、
    TextBox1.Value = 1
    Application.Wait DateAdd("s", 3, Now)
    TextBox1.Value = 2
    Application.Wait DateAdd("s", 3, Now)
    TextBox1.Value = 3
のように書けます。

ただし、Wait 中は Excel を操作できなくなります。
もし、非同期的に処理させたいのであれば、Wait メソッドの代わりに
OnTime メソッドを使えば OK です。

# あるいは、SetTimer / KillTimer API を使うという方法もあります。

[ツリー表示へ]
タイトルRe^2: 間隔をあけて表示(VBA)
記事No14186
投稿日: 2009/10/19(Mon) 18:22
投稿者レン
>
> 手抜き実装としては、
>     TextBox1.Value = 1
>     Application.Wait DateAdd("s", 3, Now)
>     TextBox1.Value = 2
>     Application.Wait DateAdd("s", 3, Now)
>     TextBox1.Value = 3
> のように書けます。
>
> ただし、Wait 中は Excel を操作できなくなります。
> もし、非同期的に処理させたいのであれば、Wait メソッドの代わりに
> OnTime メソッドを使えば OK です。
>
> # あるいは、SetTimer / KillTimer API を使うという方法もあります。


わかりました。エクセルの操作が出来なくなるのですね。
ありがとうございました。

OnTime メソッドの方も使ってみたいと思います。

[ツリー表示へ]