• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ユーザーフォームを起動しながらタイマーのマクロを動かしたい)

ユーザーフォームとタイマーのマクロを組み合わせて動かしたい方法

このQ&Aのポイント
  • ユーザーフォームとタイマーのマクロを組み合わせて、ユーザーフォームが開かれている状態でも特定の時間にメールを送信する方法を教えてください。
  • 現在、ユーザーフォームで入力したデータを各セルに入れてVBAを書いていますが、同時にタイマーのマクロを起動させる方法がわかりません。
  • ユーザーフォームが開かれている状態でタイマーのマクロを動作させることはできるのでしょうか?また、不定期なタイマーの処理方法も教えてください。

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

  • ベストアンサー
  • DreamyCat
  • ベストアンサー率56% (295/524)
回答No.1

Ontimeの呼び出し先を次のようにしてください。 Public Sub SendMail() UserForm1.Hide 'sendmail UserForm1.Show End Sub >>不定期なタイマーの方法<< どんなことをイメージしているのかわからないのですが 変数で指定するだけでいいと思いますが・・・   dim tm as string  tm= 'textboxなどから取得  指定時刻 = TimeValue(tm)

micazroom
質問者

お礼

早い回答ありがとうございます! Hideなんてワザがあったんですね(笑) ユーザーフォームを閉じるのはUnloadばかりしていてそれで閉じると入力情報も消えていたので助かりました! 不定期なタイマーは、例えば13時、14時、16時、19時、20時みたいに規則性のない時間でメールを送信(マクロ起動)をしたいのです。 時間は外部からではなく、設定しときたいのです。 現段階でその不定期な時間が決まってないのですが、これから決まるので先に作っときたいのです。 一つのマクロで実現は可能ですか? よろしければ再度回答お願いします!

その他の回答 (1)

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>不定期なタイマーは、例えば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

micazroom
質問者

お礼

回答していただいてありがとうございました。 昨日、動くかテストしてみたのですが、一つ目の時間は動くのですがそれ以降が動きませんでした。

関連するQ&A

専門家に質問してみよう