• ベストアンサー

アクセスVBA 時間を止める

エクセルでは動くのですがアクセスで Application.Wait (Now + TimeValue("00:00:01")) を実行すると 「Wait」メソッドまたはデータ メンバが見つかりません。 (Error 461) となってしまいます。 「Wait」にかわる何かがあるのでしょうか? 宜しくお願い致します。

  • dfghhj
  • お礼率99% (432/434)

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

  • ベストアンサー
  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

time関数またはtimer関数をループの中で使い、 必要な秒数だけ待機させることができます。 Windows APIのSleepでもできると思います。

dfghhj
質問者

お礼

わかりました。調べてみます。ありがとうございます。

関連するQ&A

  • VBAでdo内にてWAITを使うとエラーが出る

    Do until内の最後に以下のコードを記載しております。 ------------------------------------- Application.Wait DateAdd("s", 5, Now) Loop ------------------------------------- Loopさせる直前に5秒停止してもらいたいだけなのですが、 「コードの実行が中断されました」というエラーが出て終了してしまいます。 waitの指示を除いて時間待ち無しで実行すれば問題なくloopできます。 また、調子の良いとき(?)には問題なく5秒まってさくさくloopしてくれますが、 一度エラーが出ると一切loopしなくなります。 エラーの黄色いマーカーはこのLoopの部分に出ます。 なぜこのような現象が起こるのか全く理解できません、、、 以下のコードに変えても状況は同じです With Application .Wait Now + TimeValue("00:00:05") End With 解決法ご存じの方、ご教示いただければ幸いです よろしくお願いします。

  • ExcelのVBAで、順次動作の実現

    Excelのシートに、トグルボタンを3つ配置します。 ToggleButton1~3 そして、次のマクロを実行すると、2秒ごとに順番にトグルボタンが押されるのかと思いきや、6秒後に一斉にトグルボタンがへっこみます。 どうにか?2秒ごとに順番にトグルボタンが押されるように出来ないでしょうか? Sub test() Dim MyWait As String MyWait = 2 ToggleButton1.Value = True Application.ScreenUpdating = True DoEvents 'この間にもマクロを入れたい(0.1秒以内に処理できるものです) Application.Wait (Now + TimeValue("0:00:" & MyWait)) ToggleButton2.Value = True DoEvents Application.Wait (Now + TimeValue("0:00:" & MyWait)) ToggleButton3.Value = True Application.ScreenUpdating = True DoEvents End Sub

  • Waitメソッド なぜブール型?

    エクセルvbaを勉強中の者なのですが Sub Sample() Application.Wait (Now + TimeValue("00:00:01")) End Sub このコードのWait メソッドのヘルプを見たのですが、 戻り値がブール型 (Boolean)になっています。 そもそもメソッドなのに、ブール型 ってあり得るのでしょうか? ブール型って、trueかFalseが返るってことなんですよね? 上記コードは、どうやればtrueかFalseが返るのでしょうか?

  • エクセル VBA 自動処理の途中終了について

    エクセルで単語のフラッシュカードを自動表示させたいと考えています。 エクセルの1セルの大きさを縦最大、横120位に広げ、C列に単語、D列に意味を縦に並べ、 C2 1秒後 D2 1秒後 C2 1秒後 D2 1秒後  C3 1秒後 D4 のように単語と意味を交互に2度ずつ表示させます。 For Next を使い表示はできるようになりましたが、途中で止めたいときに、escを押すと For Nextの処理を最後まで一気に行ってから止まってしまいます。 C5を表示していたら、その場所でPause をし、スタートボタンで再度継続して表示したいと思います。また、単語や意味のセルにはそれぞれ別の文字装飾をしてあるので、(赤や青、大きさなど) セルを移動して表示したいと考えています。 実は他のサイトでも質問しましたが、思ったような回答を得られませんでした。よろしくお願いします。 Sub セル移動() Dim waitTime As Variant i = 0 Range("c2").Select waitTime = Now + TimeValue("0:00:01") Application.Wait waitTime Range("c3").Select waitTime = Now + TimeValue("0:00:01") Application.Wait waitTime For i = 1 To 50 ActiveCell.Select Selection.Offset(0, 1).Select waitTime = Now + TimeValue("0:00:01") Application.Wait waitTime Selection.Offset(0, -1).Select waitTime = Now + TimeValue("0:00:01") Application.Wait waitTime Selection.Offset(0, 1).Select waitTime = Now + TimeValue("0:00:01") Application.Wait waitTime Selection.Offset(1, -1).Select waitTime = Now + TimeValue("0:00:01") Application.Wait waitTime Application.OnKey ("{esc}"), "shuryo" i = i + 1 Next i End Sub Sub shuryo() Application.ScreenUpdating = False Range("c2").Select Application.GoTo reference:=ActiveCell, scroll:=True Application.ScreenUpdating = True Exit Sub End Sub

  • エクセルにpdfのテキストを表示させたい

    色々やってみたのですがうまくいかないので質問させてください。 エクセルで直接pdfのテキストを表示させるスマートな方法はありませんでしょうか? エクセルで編集するために元データのpdfファイルのテキストを取り込みたいのです。 Sub test() Dim strFilePath As String strFilePath = Application.GetOpenFilename _ ("PDFファイル,*.pdf", MultiSelect:=False) Call Shell("explorer.exe " & strFilePath)  Application.Wait Time:=Now + TimeValue("00:00:05")  Application.SendKeys "^a"  Application.Wait Time:=Now + TimeValue("00:00:03")  Workbooks(1).Activate  Application.SendKeys "^c" End Sub まったく動かないのですが今はこんな感じになっています。

  • Excel VBA でイベント"Worksheet_Change"を使

    Excel VBA でイベント"Worksheet_Change"を使って,データの追加処理中に,イベントが連続発生してしまい,エラー発生となります。解決方法のヒントがありませんか? 1)イベント発生を一時的に受け付けない構文の "Application.EnableEvents = False" を処理ルーチンの先頭に入れています。 2)データテーブル表の特定処理「データを追加のため,"セル挿入"→"データ投入"」を行うとイベントの連続発生があるので,"セル挿入"と"データ投入"との間に "Application.Wait (Now() + TimeValue("00:00:01"))" を入れて,タイミングを遅らせていますが効果ありません。

  • EXCEL VBA IEからダウンロード

    まず以下のコードを見てください(一部を抜粋) objIE.Navigate URL02 Do While objIE.Busy = True DoEvents Loop objIE.ExecWB OLECMDID_SELECTALL, OLECMDEXECOPT_DODEFAULT objIE.ExecWB OLECMDID_COPY, OLECMDEXECOPT_DODEFAULT Application.Wait Now() + TimeValue("00:00:05") objIE.Quit Worksheets("商品情報").Select Range("A2:J100").Clear Range("A2").Select Application.Wait Now() + TimeValue("00:00:05") Application.SendKeys "^v", True とりあえずこれで使えてはいるのですが、これだと一度IEを終了することになるので、終了せずにエクセルのシートにペーストしたいと思いobjIE.Quitを削除しました。 そうしたらコピーまではするのですがペーストしなくなってしまいました。 なんとかIEを起動したままでペーストしたいのですが、どう直したらいいですか?教えてください。 宜しくお願いします。

  • エクセルVBA

    VBAの素人です。 以下のようなVBAを実行しようと、何とか形にしました。 単独のBOOKではうまくいくのですが、同時に他のBOOKを開くと 「インデックスが有効範囲にありません」とエラーになります。 エラー箇所は、With Sheets("Sheet1").Range("B1")部分です。 修正をご教示頂ける方、何卒よろしくお願い致します。 全くVBA無知なのにすみません。 Private Sub Workbook_Open() test01 test02 Application.OnTime Now + TimeValue("00:10:00"), "終了" End Sub Sub 終了() Application.OnTime Now + TimeValue("0:00:02"), "test01", , False ThisWorkbook.Close Savechanges:=False Application.Quit End Sub Sub test01() With Sheets("Sheet1").Range("B1") .Value = Time .NumberFormatLocal = "mm:ss" End With Application.OnTime Now + TimeValue("0:00:02"), "test01" End Sub Sub test02() With Sheets("Sheet1").Range("B2") .Value = Time .NumberFormatLocal = "mm:ss" End With End Sub

  • VBAでエクセルの表をワードに入力

    Excel/Word2002使用です。 ワードへの入力を自動化するためにVBAを使用してエクセルの表をワードのテンプレートに渡したいのですが。 エクセルのA1:C8のセルに表として値が入力されています。 この表をコピーしてワードに貼り付けます。 ワード側は何も入力されていない文書ですが、 テンプレートが用意されているので、このテンプレートを指定してワードを立ち上げます。 ワードに貼り付けられる表はタブ区切りです。 具体的には下記コード3行目の”winword.exe”を具体的なテンプレートのパス名にしたいのですが・・・ Sub word貼り付け() Dim mytskID As Double Range("A1:C8").Copy  mytskID = Shell("winword.exe", vbNormalFocus)  Application.Wait Now + TimeValue("00:00:10")  Application.SendKeys "^v", True  Application.Wait Now + TimeValue("00:00:10")  Application.SendKeys "%fa", True  Range("A1").Copy  AppActivate mytskID  Application.SendKeys "^v", True  Application.SendKeys "~", True  Application.Wait Now + TimeValue("00:00:05")  Application.SendKeys "%fx", True  Application.CutCopyMode = False MsgBox "完了しました" End Sub なお、上記コードも教科書通りにしたはずなのですが、 何故か「名前をつけて保存」のSendKeys "%fa"のときだと思うのですが、 ワード側ではファイルメニューの罫線が反応してしまいます。 あわせてご教授いただければ幸いです。 よろしくお願いします。

  • VBA ACCESSからexcel操作

    仕事でアクセスから二つのファイルを操作したいです。 アクセスのテーブルから新規excel(BOOK1)にデータを抽出し、 そのデータを既存のデータが入っているexcel(BOOK2)にコピーしたいです。 どうしてもコピーメソッドのRANGEクラスのところで「アプリケーションの定義エラー」 なってしまいます。 BOOK1のデータをBOOK2の新規シートにコピー、BOOK1とBOOK2のデータ行を 数える、のは試しやってできたので、 二つのファイル操作は出来ていて、RANGEクラスのところで既存シートにコピーする部分が 出来ていないんだと思います。 基本操作だと思いますが困っています。よろしくお願いします。

専門家に質問してみよう