• 締切済み

エクセルVBPでテキストボックスを時間差で表示

算数のフラッシュ教材をVBPで作ろうと思っています。 A+B=Cの A,Bを乱数発生させて、TextBox1とTextBox2に表示させて、 数秒後に答えであるCをTextBox3に表示させたいのです。そこで、 TextBox3.Visible = False TextBox1.Text = a TextBox2.Text = b Application.Wait Time:=Now + TimeValue("00:00:2") '---2秒間停止 TextBox3.Text = c TextBox3.Visible = true のようにやるのですが、すべてのテキストボックスが同時に表示されて、時間差表示に ならないのです。どなたか、よろしくお願いします。

みんなの回答

  • jcctaira
  • ベストアンサー率58% (119/204)
回答No.2

poo4wansさん こんにちは。 確かに一緒のタイミングで一気に表示されてしまいますね。 DoEvents を追加すればができると思いましたが、1つではダメで2つなら取り敢えず動きました。 パソコンの環境(私はWin7(64Bit)、EXCEL2003)で違うかも知れませんが…。    TextBox3.Visible = False  TextBox1.Text = a  TextBox2.Text = b  DoEvents  DoEvents  Application.Wait Time:=Now + TimeValue("00:00:2") '---2秒間停止  TextBox3.Text = c  TextBox3.Visible = True

poo4wans
質問者

お礼

さっそくありがとうございます。教えていただいたとおりで、望み通りの動きをさせることができました。感謝です。

すると、全ての回答が全文表示されます。
  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

Option Explicit Dim a As Single Dim b As Single Dim c As Single Private Sub CommandButton1_Click() a = Rnd() * 10 b = Rnd() * 20 TextBox3.Visible = False TextBox1.Text = a TextBox2.Text = b DoEvents: DoEvents: DoEvents '⇔ ***これを追加してください *** Application.Wait Time:=Now + TimeValue("00:00:2") '---2秒間停止 TextBox3.Text = a + b TextBox3.Visible = True End Sub

poo4wans
質問者

お礼

さっそくありがとうございます。お二方に教えていただき、感謝感謝です。 やはり解決の方法があるんだなあと感心しました。

すると、全ての回答が全文表示されます。

関連するQ&A