現在、ユーザーフォームで入力したデータを各セルに入れてくVBAを書いています。これ自体は問題ないのですが、同時にタイマーのマクロを起動させたいのですが書き方がさっぱりわかりません。
ネットで調べて、タイマーのマクロは書けました。
タイマーのマクロというのは、特定の時間になったらユーザーフォームで打ちこんだデータのブックを送付して特定の宛先にメールするというマクロです。
このタイマーのマクロ自体は普通に動くのですが、設定した時間にユーザーフォームが開かれてるとマクロが動いてくれません。
そしてユーザーフォームは常に開かれている状態なんです。
希望としてはユーザーフォームが開かれている(入力している)時でも、はじめにメッセージボックスなどで「今からメール送信します。しばらくお待ちください。」などとメッセージを出して現状まで入力済みのデータ(ブックを)メールを送信させることが出来るのが希望です。
タイマーのマクロはWorkbook_Openに
指定時刻 = TimeValue("07:30:00")
待ち時間 = TimeValue("00:01:00")
Application.OnTime TimeValue(指定時刻), "SendMail", TimeValue(待ち時間)
Call 次のメール送信
みたいな感じで書いてます。
ユーザーフォームが開いている状態でタイマーのマクロ(他のマクロ)を動かすのって無理なんですか?
ちなみに、不定期なタイマーの方法がわからなかったので、それもわかれば教えていただけませんか。
一定時間感覚のタイマーはあったのですが、不定期なタイマーのマクロが調べても見つからず…
タイマーのマクロを何個も書いてなんとか、一つのタイマー処理が終わったら次のタイマーマクロを呼び出すって方法を取りました。
もし、もっと簡単な書き方などあったらアドバイスお願いします。
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
回答していただいてありがとうございました。
昨日、動くかテストしてみたのですが、一つ目の時間は動くのですがそれ以降が動きませんでした。
No.1ベストアンサー
- 回答日時:
Ontimeの呼び出し先を次のようにしてください。
Public Sub SendMail()
UserForm1.Hide
'sendmail
UserForm1.Show
End Sub
>>不定期なタイマーの方法<<
どんなことをイメージしているのかわからないのですが
変数で指定するだけでいいと思いますが・・・
dim tm as string
tm= 'textboxなどから取得
指定時刻 = TimeValue(tm)
早い回答ありがとうございます!
Hideなんてワザがあったんですね(笑)
ユーザーフォームを閉じるのはUnloadばかりしていてそれで閉じると入力情報も消えていたので助かりました!
不定期なタイマーは、例えば13時、14時、16時、19時、20時みたいに規則性のない時間でメールを送信(マクロ起動)をしたいのです。
時間は外部からではなく、設定しときたいのです。
現段階でその不定期な時間が決まってないのですが、これから決まるので先に作っときたいのです。
一つのマクロで実現は可能ですか?
よろしければ再度回答お願いします!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
都道府県穴埋めゲーム
都道府県の名前を1人1つずつ投稿してください。全ての都道府県が出たら締め切ります!
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
ユーザーフォーム上に現在日時と時刻を表示させていますがフォームを実行すると時間が更新されません。それ
Visual Basic(VBA)
-
VBAでユーザーフォームの表示を確認
Visual Basic(VBA)
-
VBA:ユーザーフォームのマルチページに色を付けたい。
Word(ワード)
-
-
4
VBA=一定時間エクセルの入力操作がない場合、自動的にそのブックを閉じたい
Windows Vista・XP
-
5
ユーザーフォームに今の時間を表示
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
ExcelのVBA。public変数の値が...
-
TERA TERMを隠す方法
-
エクセルで別のセルにあるふり...
-
ExcelVBAの繰り返し処理でwebク...
-
ダブルクリックで貼り付けた画...
-
wordを起動した際に特定のペー...
-
エクセルで縦に並んだデータを...
-
Excel VBAからAccessマクロを実...
-
#define __T(x) L ## x について
-
右クリックによるイベントマク...
-
エクセルに張り付けた写真のフ...
-
Pythonでexcelのvbaを作成、実...
-
【EXCEL VBA】オートシェイプを...
-
C#でASPでEXCELをマクロ動かす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel・Word リサーチ機能を無...
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
Excel マクロ VBA プロシー...
-
メッセージボックスのOKボタ...
-
一つのTeratermのマクロで複数...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
Excel VBAからAccessマクロを実...
-
TERA TERMを隠す方法
-
Excel マクロでShearePoint先の...
-
ExcelVBAでPDFを閉じるソース
-
特定文字のある行の前に空白行...
-
マクロ実行時、ユーザーフォー...
-
wordを起動した際に特定のペー...
-
エクセルで別のセルにあるふり...
-
ソース内の行末に\\
-
マクロで空白セルを詰めて別シ...
-
【EXCEL VBA】オートシェイプを...
-
エクセルのマクロをセルの値に...
おすすめ情報