• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:マクロの記録で作ったのですが、バックヤードで可動するようにできないでしょうか?よろしくお願いします)

バックヤードで可動するようにするマクロ

このQ&Aのポイント
  • マクロの記録で作ったのですが、バックヤードで可動するようにできないでしょうか?現在はシートが移動したりマウスを動かすと読み込む時間がずれます。
  • やりたいことは、バックヤードで可動するようにしたいのと、実行間隔を任意で指定したセルから実行間隔を取得したいのです。
  • 質問者はマクロを記録しており、バックヤードで動作させる方法を知りたいとしています。また、実行間隔を任意のセルから取得したいとも述べています。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

> 動きが渋くなり実行間隔が延びてしまいます。 このマクロ以外に別のコードを走らせてデータを取得しているのでしょう? その処理に時間がかかるのではないでしょうか。 下記のコードをこちらのエクセル2000で実行すると、5秒を指定するとほぼ5秒間隔で作動しました。(これ以外何のマクロも動かしてないからでしょうけど) Sub Macro2() With Sheets("DATA") Application.Calculation = xlCalculationManual .Range("A1:C1").Value = Sheets("表示").Range("B10:D10").Value .Range("A1:C1").Insert Shift:=xlDown Application.Calculation = xlCalculationAutomatic If .Range("J8").Value = 999 Then Application.Run "ストップ3" Else Application.Run "Macro3" End If End With End Sub Sub Macro3() Dim s As String With Sheets("DATA") .Range("J8").ClearContents s = "00:00:" & Format(.Range("J7"), "00") Application.OnTime Now + TimeValue(s), "Macro2" End With End Sub Sub ストップ3() Sheets("DATA").Range("J8").Value = 999 End Sub

nenezo50
質問者

お礼

すいません。マクロの残骸が動いていたようです。 本当に助かりました、ありがとうございます。 がんばってVBAを勉強していきたいと思います。

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

勘違いしているかもしれませんが、マクロ作動時にシートが自動的に切り替わるのをやめ、実行間隔の秒数を任意のセルの数値とするということでしょうか。 秒数を入れるセルをDATAのJ7にした場合の例です。 Sub Macro2() With Sheets("DATA") .Range("A1:C1").Value = Sheets("表示").Range("B10:D10").Value .Range("A1:C1").Insert Shift:=xlDown If .Range("J8").Value = 999 Then Application.Run "ストップ3" Else Application.Run "Macro3" End If End With End Sub Sub Macro3() Dim s As String With Sheets("DATA") .Range("J8").ClearContents s = "00:00:" & Format(.Range("J7"), "00") 実行間隔 = Now + TimeValue(s) Application.OnTime TimeValue(実行間隔), "Macro2" End With End Sub Sub ストップ3() Sheets("DATA").Range("J8").Value = 999 End Sub

nenezo50
質問者

お礼

ありがとうございます。 試してみたのですが、動きが渋くなり実行間隔が延びてしまいます。 どうすれば良いのでしょうか? 例 5秒設定にすると、10秒ぐらい間隔で取得します。