ACCESS かるた取り(百人一首) 5秒後に表示するには

このQ&Aのポイント
  • ACCESS かるた取り(百人一首)の読み上げカードのテキスト表示を時間をおいて表示する方法について質問です。
  • 現在、開始ボックスをクリックすると最初に上の句を表示し、5秒後に中の句と下の句を表示しようとしていますが、最初は反応せず、5秒後に一度に表示されてしまいます。
  • 質問者は、テキストを5秒ごとに表示する方法を教えてほしいとおっしゃっています。
回答を見る
  • ベストアンサー

ACCESS かるた取り(百人一首) 5秒後に表示するには

皆様のお陰でだいぶ仕上がってまいりました。 読み上げカードのテキストの表示を時間をおいて表示したいのですが 開始ボックスをクリックすると 最初に上の句を表示して、5秒後に中の句、下の句を表示しようとしたコーディングですが 最初無反応で、5秒後に一度に表示されてしまいます。 Private Sub 開始_Click() Dim 待ち時間 As Single 上の句.Visible = True 待ち時間 = Time() 待ち時間 = Time() + 5 / 24 / 60 / 60 Do While Time() < 経過時間 I = I Loop 中の句.Visible = True 下の句.Visible = True End Sub

質問者が選んだベストアンサー

  • ベストアンサー
noname#140971
noname#140971
回答No.1

Puase 関数の類を用意すると良いと思います。 Private Sub コマンド6_Click()   上の句.Visible = False   中の句.Visible = False   下の句.Visible = False End Sub Private Sub コマンド7_Click()   上の句.Visible = True   Pause 5   中の句.Visible = True   下の句.Visible = True End Sub <標準モジュール> Public Sub Pause(ByVal PauseTime As Single)   Dim Finish As Single      Finish = Timer + PauseTime   Do     DoEvents   Loop Until Timer > Finish End Sub

shinkami
質問者

お礼

提示していただいたコード丸写しで解決しました。 お陰さまで質が向上しました。 自分はかるた取りはやったことがありませんが5秒は短すぎるようです。調整を画面上で出来るようにして、利用者に任そうと思います。

関連するQ&A

  • access テキストボックスをクリックして 可視=false にするには

    よろしくお願いします。 かるた取り(百人一首)のゲームを作っています。 下の句のテキストボックス(かるた0~かるた99)を画面に配置しました。 上の句を表示して、これに合った下の句のテキストボックスをクリックしたときにこのボックスを画面から消し去るにはどうすればよいのでしょうか Private Sub かるた0_Click() If かるた0 = 中句 Then かるた0.Visible = False カードめくり Else MsgBox ("お手つき") End If End Sub としましたが、以下のようなエラーメッセージです。 「コントロールがフォーカスのときはコントロールを非表示にすることは出来ません」 カーソルを移動すればよいと思うのですが、コーディングで移動する方法を教えてください。

  • 「○秒」のところの表示を消したい

    ●質問内容 下記のコードを用いてユーザーフォーム上で ストップウォッチに時間を計測できるフォームを 作成しました。 添付の画像において計測時間は「0:02:29」となっていますが、 これを「0:02」としたいと考えています。 コードをどのように書き換えればよいでしょうか? ちなみに「○秒」のところは全て切り捨てにするつもりです。 ご存知の方ご教示願います。 ●コード Option Explicit Dim inProcess As Boolean ' True なら計測中を表す Private m_Kaishi As Date Private m_Syuryo As Date '開始時間をクリックするとラベル22が時間に変わる Private Sub CommandButton6_Click() Select Case inProcess Case False ' 計測を開始する inProcess = True m_Kaishi = Time Label22.Caption = FormatDateTime(m_Kaishi, vbShortTime) Label23.Caption = "" Label24.Caption = "" CommandButton6.Caption = "作業終了" Case True ' 計測を終了してインターバルを表示 inProcess = False m_Syuryo = Time Label23.Caption = FormatDateTime(m_Syuryo, vbShortTime) Label24.Caption = CDate(m_Syuryo - m_Kaishi) CommandButton6.Caption = "作業開始" End Select End Sub Private Sub UserForm_Initialize() CommandButton6.Caption = "作業開始" Label22.Caption = "" Label23.Caption = "" Label24.Caption = "" End Sub

  • 時間のかかる処理中にメッセージを表示したい。

    はじめまして、宜しくお願いします。 現在Access2002でDBはSQLサーバーを使って、 下記のことを実行しようと思っております。 やりたいことは、タイトルにも書いたように、 処理中にメッセージを出したいのですが、思うようにできず行き詰っております。 やっていることは 処理開始というコマンドボタンを作成して、そのクリックイベントに 下記のようなソースを記述します。 Private Sub 処理開始_Click() Dim i As Long Dim X As Long Me!処理中表示ラベル.Visible = True SysCmd acSysCmdInitMeter, "只今、処理中です…", 100 For i = 0 To 1000000 X = X + 1 SysCmd acSysCmdUpdateMeter, i Next i SysCmd acSysCmdRemoveMeter Me!処理中表示ラベル.Visible = False MsgBox X End Sub 処理が始まる前に Me!処理中表示ラベル.Visible = True でラベルを表示して、 Me!処理中表示ラベル.Visible = False でラベルを非表示にしているのですが、処理中にラベルが表示されません。 仕方がないのでクリックイベント以外の先に行われるマウスダウンイベントに Private Sub コマンド0_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Me!ラベル1.Visible = True End Sub を書くと表示されるのですが 他の用途も考えて やはりクリックイベントの中で行いたいと思っております。 基本的な部分で見落としているところがあるかもしれませんが なにか気づかれた方はご教授ください。 宜しくお願いします。

  • セルへの出力に時間差をつけたい

    OFFICE 2007, windows7 のユーザです。俳句の記憶補助プログラムを作っております。 1)EXCELセルに表題を番号/上の句/中の句/下の句として4列×N行の表を準備します。 2)次いで、A1セルに検索値として上記の番号の一つを入力します。 3)A2に上の句を表示するため、「=vlookup(検索値としての番号,表の名前,上の句の列番2,真偽)」と入力。 4)B2に中の句を表示するため=vlookup(同一の番号、表名,列番3,真偽)と入力。 5)C2に下の句の表示のため、=vlookup(同一の番号,表名,列番4,真偽)と入力。 そこで質問。たとえば検索値1番では表に従って 我と来て/ 遊べや親の/無い雀 が同時に出力されますが、この際、上の句を表示後、記憶を確かめるための少々の時間を2~3秒置いてから、中の句、ついで下の句と段階的に表示させたいのです。マクロを使わないで関数を使用するなどの手法をご教授ください。昔、FORTLANを使っていたころ、SUM=1+2+3・・・・+NでNを変更して時間を調節しておりましたが、EXCELの関数でお願いします。 

  • みんなと百人一首を楽しみたいけど…。

    中学生です。学校で国語の時間に百人一首をしているのですが、全然楽しくありません。 というのも、私だけたくさん取ってしまい、みんなが「全然楽しくないし!」というオーラ出しまくっているからなのです。 口では「すごい!」とか言っているのですが、みんな目つきが怖いです。 私はいつも上の句のはじめの方で取ってしまうんです。みんながハンデ!とか言って下の句でとることもありますが、こういうのに耐えきれない性格で、何回かしたら「もういいでしょー?」と言って、また上の句でとってしまいます。(たまに、分かっていてもゆっくり目にとることもあります) それに、成績にも関わってくると思うし(先生が枚数を聞いてチェックしてました)あまり妥協できません。 それで最後、先生が「またしたい人!」と聞いたら、私の班の人は1人も手を挙げませんでした。最初、やる前は「はやくやりたい!」とか「楽しみー」とか言っていたので、私のせいと思うと申し訳なくてたまりませんでした。 どうしたら、みんなと楽しくできるでしょうか? たくさんとりたいのですが、周りが気になってとれません。アドバイスお願いします!

  • VBAで百人一首練習プログラムを作りたいです。

    当方EXCEL2007ユーザです。同じような内容で最近2度目の投稿ですがよろしくお願いします。 ◇やったこと 1 小倉百人一首の一番から100番まで、歌番号・上の句・中の句・下の句・詠者の5項目(5列)、項目名を含めて 101行の表(元表と名前を付けました。)をB2:F101の範囲で作成しました。 2 練習プログラムだから1番歌から100番歌までランダムに出題する。   INT(RAND()*100)で乱数を発生させました。 3 VLOOKUPファイル関数で乱数番号に対応する歌を、その元表のとなりセルに上記5項目表示させました。 ◇したいこと 4 練習プログラムだから、上の句だけ表示して、「中の句は?」という動作を加えるまで中の句を示さず、なにか動作を加えてから中の句を表示する。 5 以下、同様に動作を加え(理解を確かめて)一首を完成する 6 一首が終わったら次の歌番号をランダムに選んで、まずは上の句を問題として提起させる。 7 疲れたら止める動作を与える 8 練習成果を正解割合で示す。  以上の通りですが、VBAで、意味は分からないなりにデッドインプットしますから「どこへ」、「何を」打ち込むのか、教えてください。よろしくお願いします。

  • マウスが触れるとテキストを表示し離れる非表示にする

    アクセスです。 フォームにラベルを設置して、 そのラベルにマウスが触れたらテキストボックスを表示させたいのです。 フォームのオープンイベントは Private Sub Form_Open(Cancel As Integer) Me.テキスト2.Visible = False End Sub になっています。 ラベルのマウスボタン解放時イベントで Private Sub ラベル0_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Me.テキスト2.Visible = True End Sub にして、ラベルをクリックするとテキストボックスが表示されます。 マウスボタン移動時イベントで Private Sub ラベル0_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Me.テキスト2.Visible = True End Sub にすると、理想通りラベルからマウスが触れたらテキストボックスが表示されます。 ここまではいいのですが マウスのカーソルが離れたら またテキストボックスを非表示にしたいのですがどうすればいいですか?

  • 非表示になったエクセルは?

    VBAマクロでパソコン画面からエクセルを非表示にする場合、 Sub TEST1() Application.visible = False End Sub で画面からエクセルが消えると思いますが、消えたエクセルはどうなってしまうのでしょうか? 何もしなければいつまでもそのままなのでしょうか? 電源を切ればでてくるのでしょうか? Application.visible = Trueで表示されるのはわかりますが、消えたエクセルにどうやってそのマクロを作動させたら良いのでしょうか? 10秒後に自動的に再表示させる方法はマクロに最初から Application.OnTime Now + TimeValue("00:00:10) などで自動実行させればよいのでしょうが、そうでない場合の再表示方法を教えてください。

  • アクセスからアクセスを立ち上げたいのですが

    オフィス2007です。 アクセスからアクセスを立ち上げたいのですが、うまくいきません。 test1.accdbにフォームとコマンドボタンを設置して、 Private Sub コマンド1_Click() Dim acApp As Object Set acApp = CreateObject("Access.Application") acApp.OpenCurrentDatabase C:\test2.accdb" acApp.Visible = True End Sub を実行したのですが、アクセスのアプリケーションが一瞬だけ開いて、閉じてしまいます。 「 acApp.Visible = True」の部分に、ブレークポイントを設定して、ステップインしてみたところ、 acApp.Visible = Trueでアクセスのアプリケーションが立ち上がり、test2.accdbが表示されますが 「End Sub」で閉じてしまいます。 ずっと開き続けるにはどうすればいいでしょうか?

  • Excel2003で簡単な図形の表示と非表示のプログラムを作成したので

    Excel2003で簡単な図形の表示と非表示のプログラムを作成したのですが上手く出来ません UserForm1に Private Sub OptionButton1 Click() ActiveSheet.Shapes("Oval 1").Visible=True 'ワークシート1に楕円の図形1表示 ActiveSheet.Shapes("Oval 2").Visible=False 'ワークシート1に楕円の図形2非表示 End Sub Private Sub OptionButton2 Click() ActiveSheet.Shapes("Oval 1").Visible=False 'ワークシート1に楕円の図形1非表示 ActiveSheet.Shapes("Oval 2").Visible=True 'ワークシート1に楕円の図形2表示 End Sub 上記の記述では上手くいくのですが、下記の様に ワークシート2の図形3と4も同様に表示・非表示したいため追加するとエラーになります。 UserForm1に Private Sub OptionButton1 Click() ActiveSheet.Shapes("Oval 1").Visible=True 'ワークシート1の楕円図形1表示 ActiveSheet.Shapes("Oval 2").Visible=False 'ワークシート1の楕円図形2非表示 ActiveSheet.Shapes("Oval 3").Visible=True 'ワークシート2の楕円図形3表示 ActiveSheet.Shapes("Oval 4").Visible=False 'ワークシート2の楕円図形4非表示 End Sub Private Sub OptionButton2 Click() ActiveSheet.Shapes("Oval 1").Visible=False 'ワークシート1の楕円図形1非表示 ActiveSheet.Shapes("Oval 2").Visible=True 'ワークシート1の楕円図形2表示 ActiveSheet.Shapes("Oval 3").Visible=False 'ワークシート2の楕円図形3非表示 ActiveSheet.Shapes("Oval 4").Visible=True 'ワークシート2の楕円図形4表示 End Sub VBAの勉強中の初心者です。教えて頂けないでしょうか。

専門家に質問してみよう