- ベストアンサー
ユーザーフォームとタイマーのマクロを組み合わせて動かしたい方法
- ユーザーフォームとタイマーのマクロを組み合わせて、ユーザーフォームが開かれている状態でも特定の時間にメールを送信する方法を教えてください。
- 現在、ユーザーフォームで入力したデータを各セルに入れてVBAを書いていますが、同時にタイマーのマクロを起動させる方法がわかりません。
- ユーザーフォームが開かれている状態でタイマーのマクロを動作させることはできるのでしょうか?また、不定期なタイマーの処理方法も教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Ontimeの呼び出し先を次のようにしてください。 Public Sub SendMail() UserForm1.Hide 'sendmail UserForm1.Show End Sub >>不定期なタイマーの方法<< どんなことをイメージしているのかわからないのですが 変数で指定するだけでいいと思いますが・・・ dim tm as string tm= 'textboxなどから取得 指定時刻 = TimeValue(tm)
その他の回答 (1)
- watabe007
- ベストアンサー率62% (476/760)
>不定期なタイマーは、例えば13時、14時、16時、19時、20時みたいに規則性のない時間でメールを送信(マクロ起動)をしたいのです。 >時間は外部からではなく、設定しときたいのです。 Sub SendMail() Dim v As Variant, i As Long '・・・・ '・・・・ '・・・・ v = Array(TimeValue("07:30:00"), TimeValue("13:00:00"), TimeValue("14:00:00"), _ TimeValue("16:00:00"), TimeValue("19:00:00"), TimeValue("20:00:00")) For i = LBound(v) To UBound(v) If v(i) > Time Then Exit For Next If i > UBound(v) Then i = LBound(v) Application.OnTime v(i), "SendMail", TimeValue("00:01:00") End Sub
お礼
回答していただいてありがとうございました。 昨日、動くかテストしてみたのですが、一つ目の時間は動くのですがそれ以降が動きませんでした。
お礼
早い回答ありがとうございます! Hideなんてワザがあったんですね(笑) ユーザーフォームを閉じるのはUnloadばかりしていてそれで閉じると入力情報も消えていたので助かりました! 不定期なタイマーは、例えば13時、14時、16時、19時、20時みたいに規則性のない時間でメールを送信(マクロ起動)をしたいのです。 時間は外部からではなく、設定しときたいのです。 現段階でその不定期な時間が決まってないのですが、これから決まるので先に作っときたいのです。 一つのマクロで実現は可能ですか? よろしければ再度回答お願いします!