質問: エクセルで定期的(30分おき)にマクロを実行させる方法は? エクセルにて刻一刻変る外部データ(株価)を表示させています。それを自動で30分置きにデータ蓄積させる方法はありませんか? 現在は自分で作ったキーボードマクロで 時計を見ながらボタンを押し、データを取り込ん出る始末です。 その簡単マクロに「30分置きに実行させる」と云う記述を付け足す程度で自動実行させる事は可能でしょうか? 当方キーボードマクロでの自動書き込みしか出来ない素人ですが、少々複雑な物であっても頑張ってみるつもりですので、どなたかご教授下さい。
回答: #04です。#04ではループしちゃいますね。再掲します。bookを開いた時から一定間隔でマクロを実行します。 sub auto_open() targettime = now + timevalue("00:10:00") '現在時刻より10分後 waittime = timevalue("00:02:00") 'targettimeに他処理実行中の時のwaittime application.ontime timevalue(targettime), "macro1", timevalue(waittime) end sub sub macro1() range("q12:s12").select selection.copy range("v65536").end(xlup).offset(1).select selection.pastespecial paste:=xlpastevalues, operation:=xlnone, skipblanks _ :=false, transpose:=false targettime = now + timevalue("00:10:00") waittime = timevalue("00:02:00") application.ontime timevalue(targettime), "macro1", timevalue(waittime) end sub ただし質問者さまのマクロは別のシートを開いているときなどにエラーになる可能性があります。 worksheets("シート名").range("q12:s12").copy のようにワークシートを明示した方がよいです