- 締切済み
すでに開いているブックのマクロを起動させるvbsを教えてください
お願いします。 00時から23時54分まで 常時開いていて、温度の数値をロギングしているexcelブックがあります。 1分おきにロギングし、10分おきに表に記録し、グラフ化しています。 エクセルを開き、閉じてOSを再起動、またエクセルを開く、を365日繰り返すものです。 基本的に常時無人です。 印刷、保存など、計7個の作業を Application.OnTime にて Workbook Open時にタイマーとしてマクロをかけてたのですが、 実行の信頼度が高くない(実行しない日がある)ので、 タスクスケジューラにて行おうとしました。 マクロを実行させるvbs Option Explicit Dim objxlsm Set objxlsm=CreateObject("Excel.Application") objxlsm.Workbooks.Open ("ブックパス) objxlsm.Run "Module11.DB保存" objxlsm.DisplayAlerts=False objxlsm.quit Set objxlsm = Nothing 以上を行うと、 今開いているブックではなく、保存されたブックを別で開き、そこのマクロを処理してしまいます。 現在開いているブックに処理をかける場合はどうしたらよいのでしょうか? このブックはリアルタイム(表内に1分おきに数値を更新します)に動いている表グラフなので、 なんとか、開いている(表示している)ブックで外部からマクロを実行したいのですが。。 ご教授ください。 ちなみに、このブックは、タスクスケジューラでvbsにて開いています。(関係ありますか?) おねがいします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- watabe007
- ベストアンサー率62% (476/760)
参考に On Error Resume Next Set objExcel=GetObject(,"Excel.Application") '既に起動しているExcelへの参照 On Error Goto 0 If objExcel Is Nothing Then MsgBox "Excelは起動していません" Wscript.Quit End If objExcel.Run "Book1.xls!DB保存" Set objExcel = Nothing
補足
こんにちは。 回答ありがとうございます。 早速やってみたところ、 マクロ~を実行できません。このブックでマクロが使用できないか、 または、すべてのマクロが無効になっている可能性があります。 コード 800A03EC となります。 もちろんこのブックでマクロは使用しています。 一分ごとにロギングしている箇所にマクロが入っているので、 一分ごとにマクロを実行しているのですが。。。 どこが悪いのでしょうか?