こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

2つのマクロをうまく動かすにはどうしたら?

以下の2つのマクロを同時に動かそうとしています
マクロ2はマクロ1で出した数字から始めの値段と終わりの値段と高安4つをエクセル関数で抽出して
出した4つの数字を24個蓄積することをめざしてます。
それぞれは1つで起動させるとうまく動くのですが
同時に動かすとマクロ1は4つずつ記録を始めたりと思い通りに動きません。
これを解決するにはどうしたらいいでしょうか?
Sub Macro1()
Range("E65536").End(xlUp).Offset(1).Resize(1, 4).Value = Range("A2:D2").Value
If Range("E65536").End(xlUp).Row > 30 Then '31行に到達してから1行目を削除する
Range("E1:H30").Delete shift:=xlShiftUp
End If
Application.OnTime Application.Floor(Now, TimeSerial(0, 1, 0)) + TimeSerial(0, 1, 0), "Macro1"
End Sub

Sub Macro2()
Range("I65536").End(xlUp).Offset(1).Resize(1, 4).Value = Range("A5:D5").Value
If Range("I65536").End(xlUp).Row > 24 Then '25行に到達してから1行目を削除する
Range("I1:L1").Delete shift:=xlShiftUp

End If
Application.OnTime Application.Floor(Now, TimeSerial(0, 30, 0)) + TimeSerial(0, 30, 0), "Macro2"
End Sub

追加としてマクロ1は30分もしくは00分(9時00分、9時30分、10時11時も同様)に記録を始めて
9時1分や31分には一旦削除最初から記録を蓄積するということを目指してます。
つまり10時10分からマクロを動かすと10時31分になると一旦削除して最初から始めるとうものです。
こちらも可能ならお願いします!

投稿日時 - 2014-05-30 21:05:47

QNo.8617280

困ってます

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

とりあえず簡易バージョンから練習してみては。

1.30分毎に全部クリアする
2.1分毎に転記する。


sub Main()
’ここから始める
 Macro1
 Macro2
end sub

sub Macro1()
 range("F:F").clearcontents
 application.ontime application.floor(now, timeserial(0, 30, 0)) + timeserial(0, 30, 0), "Macro1"
end sub

sub Macro2()
 range("F65536").end(xlup).offset(1).value = range("B2").value
 application.ontime now + timeserial(0, 1, 0), "Macro2"
end sub

投稿日時 - 2014-05-30 22:31:59

お礼

なるほど!先にクリアをいれるといいんですね!
なんとなく全体像が見えてきました!
keithinさん!最初から最後まで本当にお世話になりました!
ここからは自分でやってみます!
ありがとうございました!

投稿日時 - 2014-05-30 23:13:04

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問