ユーザーフォームを起動しながらタイマーのマクロを動かしたい
現在、ユーザーフォームで入力したデータを各セルに入れてくVBAを書いています。これ自体は問題ないのですが、同時にタイマーのマクロを起動させたいのですが書き方がさっぱりわかりません。
ネットで調べて、タイマーのマクロは書けました。
タイマーのマクロというのは、特定の時間になったらユーザーフォームで打ちこんだデータのブックを送付して特定の宛先にメールするというマクロです。
このタイマーのマクロ自体は普通に動くのですが、設定した時間にユーザーフォームが開かれてるとマクロが動いてくれません。
そしてユーザーフォームは常に開かれている状態なんです。
希望としてはユーザーフォームが開かれている(入力している)時でも、はじめにメッセージボックスなどで「今からメール送信します。しばらくお待ちください。」などとメッセージを出して現状まで入力済みのデータ(ブックを)メールを送信させることが出来るのが希望です。
タイマーのマクロはWorkbook_Openに
指定時刻 = TimeValue("07:30:00")
待ち時間 = TimeValue("00:01:00")
Application.OnTime TimeValue(指定時刻), "SendMail", TimeValue(待ち時間)
Call 次のメール送信
みたいな感じで書いてます。
ユーザーフォームが開いている状態でタイマーのマクロ(他のマクロ)を動かすのって無理なんですか?
ちなみに、不定期なタイマーの方法がわからなかったので、それもわかれば教えていただけませんか。
一定時間感覚のタイマーはあったのですが、不定期なタイマーのマクロが調べても見つからず…
タイマーのマクロを何個も書いてなんとか、一つのタイマー処理が終わったら次のタイマーマクロを呼び出すって方法を取りました。
もし、もっと簡単な書き方などあったらアドバイスお願いします。
補足
早速の回答ありがとうございます。 それでは、概略の内容を・・・。 Sub データ作表() Dim (変数宣言) ユーザーフォーム.show ユーザーフォームから得た情報で作表する手順 ・ ・ ・ End Sub ~ユーザーフォーム内のイベントマクロです~ Private Sub OK_Click ユーザーフォーム.Hide End Sub Private Sub Cancel_Click メッセージボックス表示 ユーザーフォーム.Hide End Sub こんな感じでわかりますでしょうか?