• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel2003 VBAでタイマーを組んでマクロを走らせたいのですが)

Excel2003 VBAタイマーでマクロ実行エラー

jcctairaの回答

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

Record1がThisWorkbookクラスにある場合、以下の通り変更してください。 Application.OnTime 指定時刻, "Record1"      ↓ Application.OnTime 指定時刻, "ThisWorkbook.Record1"

zaq_zaq_zaq
質問者

お礼

エラーでなくなりました。 ありがとうございます。

関連するQ&A

  • VBAのタイマー

    こんにちは VBAで、一日に一回起動するマクロを作ろうと思っています。 Sub timer() Dim settime As Variant Dim waittime As Variant settime = TimeValue("00:35:00") '指定時刻 waittime = TimeValue("00:01:00") settime = settime + waittime '指定時刻待ち時間 Application.OnTime TimeValue(settime), "sub" End Sub な感じなのですが、これだと一度起動すると二日目以降は動作しなくなります。 毎日起動するにはどうしたら良いものでしょうか

  • エクセルのマクロのタイマー機能について

    エクセルのマクロのタイマー機能について エクセルのマクロで指定した時間ごとにURLをクリックするマクロを作っています。 下記のように作っていますが、もっと簡略化して短い記述にしたく思います。 URLと指定時間は別のマクロで生成して、URLはA1~A49まで、指定時間はB1~B490までセルに書きこむようにしています。 URLはA49まで読んだらA1から読み直して10往復して、490回使用します。 使用するセルを一回ごとにずらしていくだけなので、簡単に出来そうな気もしますが、マクロ初心者のためわかりません>< 恐れ入りますが、ご教授いただければ幸いです。 ちなみにエクセル2007で作成しています。 Sub 一定の時間間隔でマクロを実行する() '進捗状況を示すために準備する 指定時刻 = Now + TimeValue("0時00分05秒") 待ち時間 = TimeValue("0時00分01秒") Application.OnTime TimeValue(指定時刻), "新規01", TimeValue(待ち時間) End Sub Sub 新規01() Range("A1").Select 'A列のURLを取得 Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True 指定時刻 = Now + Range("B1").Value 'B列の時間を取得 待ち時間 = TimeValue("0時00分01秒") Application.OnTime TimeValue(指定時刻), "新規02", TimeValue(待ち時間) End Sub Sub 新規02() Range("A2").Select Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True 指定時刻 = Now + Range("B2").Value 待ち時間 = TimeValue("0時00分01秒") Application.OnTime TimeValue(指定時刻), "新規03", TimeValue(待ち時間) End Sub         ↓    同様の記述を490回繰り返す         ↓ Sub 新規建設490() Range("C1").Value = Now & " 終了" End Sub Private Sub 進捗状況を示すために準備する() Cells.Clear Columns("A:A").NumberFormatLocal = "yyyy/m/d h:mm:ss" Range("A1").Select ActiveCell.Value = Now & " 開始       " Columns("A:A").EntireColumn.AutoFit End Sub

  • Excel2010 VBAについて

    以下のソースを書いて実行したのですが 「実行エラー'1004' WorksheetFunctionクラスのVlookupプロパティを取得できません」 と表示されます Sub 時刻表示() '日本の時間と選択した年の時刻・時差を1秒ごとに表示しなおす Dim City As String Dim Jisa As Long Application.ScreenUpdating = False City = Range("C6").Value Jisa = WorksheetFunction.VLookup(City, _ Worksheets("都市リスト").Range("B3:C14"), 2, False) Range("E7").Value = Jisa Range("C4").Value = Now Range("C7").Value = DateAdd("h", Jisa, Now) Range("C4, C7").NumberFormat = "m/d h:mm:ss" Application.ScreenUpdating = True Application.OnTime Now + TimeValue("0:00:01"), "時刻表示" End Sub Sub 時刻表示終了() '時計を止める Application.OnTime Now + TimeValue("0:00:01"), "時刻表示", Schedule:=False End Sub デバックをすると Application.OnTime Now + TimeValue("0:00:01"), "時刻表示", Schedule:=False がマーカーで引かれます 一応本通りには打ったと思うのですが、、、。 どこが間違えているか教えてください

  • VBA マクロの2つのカウントダウンタイマーの件

    VBAでマクロ作成中ですが、標準モジュール間の変数のやり取りがよくわかりません。 教えていただけないでしょうか? Sub 指定時刻にマクロを実行する1()    mywait = 1    指定時刻 = Now + TimeSerial(0,0,mywait)    IF MacroStop = False Then      Application.OnTime 指定時刻,”指定時刻にマクロを実行する1”    Call やりたいこと1    Else MacroStop = False End End If End Sub Sub やりたいこと1    C1= C1+1    ZAN1 =TB1-C1   ・・・ End Sub Sub マクロ停止1()     MacroStop = True     Range(”A1”).ClearContents     ... End Sub と Sub 指定時刻にマクロを実行する2()    mywait = 1    指定時刻 = Now + TimeSerial(0,0,mywait)    IF MacroStop = False Then      Application.OnTime 指定時刻,”指定時刻にマクロを実行する2”    Call やりたいこと2    Else MacroStop = False End End If End Sub Sub やりたいこと2    C2= C2+1    ZAN2 =TB2-C2  ・・・ End Sub Sub マクロ停止2()     MacroStop = True     Range(”A2”).ClearContents     ... End Sub という標準モジュールを2つ作成し、一方のマクロ(C1側)を止めると、もう一方のマクロ(C2側)の変数(TB2)がIntegerからEmptyに変わってしまい、ZAN2がマイナスカウントしてしまいます。 TB1はInteger型のままClearContentsされ0になり、C1側のマクロは正常に止まっています。C2側は、継続して正常にカウントダウンさせたいのですが。。。 マクロの初心者です どなたかよろしくお願いします。 

  • 毎日指定時刻に自動でエクセルを開き、マクロを起動する方法

    <前提条件> ・パソコンを常に起動している(シャットダウンはしない) ・TEST.xlsにマクロ作成済 <お聞きしたいこと> ・毎日指定時刻(15:30)にTEST.xlsを開き、登録されている  マクロを自動で実行したい <私の考え> ・TEST.xlsに下記マクロを登録しようと思っております。  ただ、下記だけですと、「指定時刻にエクセルを開く」と、  「毎日指定時刻に自動でマクロを実行する」ことができません。  あまりマクロについて知識がないため、ご教示のほどよろしくお願いいたします。 Sub 指定時刻にマクロを実行する() Application.OnTime TimeValue("15:30:00"), _ "MSGBOX", _ TimeValue("00:00:30") End Sub Sub MSGBOX() msgbox"TEST" End Sub 

  • エクセルシートの順繰り表示マクロについて

    エクセルにて随時更新されるデータを全画面表示し、3枚のシートを5秒置きに順繰り表示させるようマクロを組みました。始めは順調なのですが、数時間たつとフリーズしてしまいます。そもそもエンドレスのマクロプログラム実行に無理があるのでしょうか。 または下記のプログラムに問題があるのでしょうか。ご教授お願いします。 Sub Macro1() Sheets("Sheet2").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro2" End Sub Sub Macro2() Sheets("Sheet3").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro3" End Sub Sub Macro3() Sheets("Sheet1").Select Application.OnTime Now + TimeValue("00:00:05"), "Macro1" End Sub

  • エクセル2007です。VBA不具合について教えてください。

    不具合ついてですが、任意のセルに何か入力中の時にA1の表示が停止してしまうことです。 入力中でもこれを回避する方法がありましたら是非お知恵を拝借したいと思います。よろしくお願いします。 現在の環境は以下のとおりです。 セルA1は=now()で秒まで表示。 横軸に日付(B2=2010/1/18~I2=2010/1/25)の8日、縦軸に時間(A3=0~A27=24)の24時間割があるシートです。 日付と時間(HOUR)がマッチしたリアルタイムセルのみを緑色(条件付き書式にて)に塗りつぶすスケジュール表を作成中です。 標準モジュールは次のとおりです。 Sub Auto_Open() Application.OnTime Now + TimeValue("00:00:01"), "timer" End Sub Sub timer() With Worksheets("Sheet1") If .Cells(1, 2) <> "" Then Exit Sub .Cells(1, 1).Calculate End With Application.OnTime Now + TimeValue("00:00:01"), "timer" End Sub

  • Excel TimeValueをしようしたループマクロの待機中のCPU開放について教えて頂けませんでしょうか?

    質問1: 10秒間隔で”解析1”のマクロを実行する下記のPrgですと待機の10秒間 ビジーになってしまいます。解決方法ご存知の方教えて下さい。 Sub 解析1実行用ループマクロ() Do 指定時刻 = Now + TimeValue("0時00分10秒") '10秒後 待ち時間 = TimeValue("0時00分05秒") Application.OnTime TimeValue(指定時刻), "解析1", TimeValue(待ち時間) Loop End Sub  (マクロ集引用しただけで理解はあまりできていません。) 質問2: ループを終了させるのにEscで終わらせています。Escをボタンに登録しようと思ってますが他にスマートな方法有りますでしょうか?

  • OnTimeを使ったのですが「エラー」になってしまいます

    VBA でOnTimeの「サンプル」を使ってのタイマーですが、実行すると次のようなエラーが出て、実行マクロへ行けません。 「マクロ"I:\一定時間後に.xls'!実行マクロ名'が見つかりません。」 どうしてなのか教えてください。 Option Explicit Dim 待ち時間 Dim 指定時刻 Sub 一定の時間間隔でマクロを実行する() 指定時刻 = Now + TimeValue("0時00分05秒") '5秒後 待ち時間 = TimeValue("0時00分01秒") Application.OnTime TimeValue(指定時刻), "実行マクロ名", TimeValue(待ち時間) End Sub Sub 実行マクロ名() Dim wavfile As String wavfile = "C:\Windows\Media\ringin.wav " 'wavファイルのパス Shell "mplay32.exe /play /close " & wavfile End Sub

  • 「一定の時間間隔で5秒毎にマクロを実行する」

    Timer関数を使ったループ 「一定の時間間隔で5秒毎にマクロを実行する」 ようにしてMacro1を実行したいのですが、 うまくいきません。どう改変したらいいでしょうか。 Sub Macro2() Dim tt As Double Dim wt As Double tt = Now + TimeValue("00:00:05") '5秒後 wt = TimeValue("00:00:01") 'インターバル1秒 Application.OnTime TimeValue("00:00:05"), "Macro1", TimeValue("00:00:01") End Sub