検索の仕方なのか、判らないので教えてください。
ExcelのVBAではApplication.OnTime メソッドがあり、
Application.OnTime TimeValue("17:00:00"), "test01"
とすれば、17時ちょうどにtest01というプロシージャが実行されます。
フォームを作って
Application.OnTime UserForm1.TextBox1.Value, "test01"
のようにすれば、TextBox1に時間指定して、その指定時間にtest01を起動する事も可能で、業務用アプリとして実際に使用しています。
では、これをVisual Basic 2010で同じように実行するにはどうしたら可能でしょうか?
googleで調べても、時計のように、一定時間(1秒ごと)にラベルの内容を書き換え表示するようなサンプルは見つかるのですが、指定時間に、指定の処理を実行する というようなサンプルは見つかりませんでした。
指定時間にFTPにファイルをアップしたり、指定時間にWEBブラウザからHTMLを取得したりと、いろいろ使い道があって結構つかっていますので、この「指定した時間に、処理○○を記述したプロシージャーを実行して」という処理ができないとかなり困ります。
No.3ベストアンサー
- 回答日時:
No.1です。
お礼に書かれているような感じでよいかと思います。
Timerというと、それが時間を監視しているように思われがちですが、今回の分でいうと、指定したインターバル(ミリ秒単位)で、時計を見るのを延々と繰り返しているだけですね。
それに対して、時刻を書いたメモ紙を渡して、「時計を見たときに、この時間だったらこんな風にしてね」とお願いしていると。
複数の異なるタスクがある場合も、メモ紙を増やすだけで良いので、使い勝手はよいと思います。
テストで、
------------------------
Private Sub Timer1_Tick(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
Dim thday1 As Date
Dim thday2 As Date
thday2 = Now()
Me.Label2.Text = thday2
thday1 = Me.TextBox1.Text
If thday1 > thday2 Then
Me.Label2.Text = "現在時刻 " & thday2
Else
Me.Label2.Text = "過ぎました"
End If
End Sub
------------------------
と組んだら、TextBox1に入れた時刻を過ぎた所で、「過ぎました」に変わりました。
ここに処理内容を記述すれば、なんとかなりそうです。
ありがとうございました。
No.4
- 回答日時:
> 1日1回ならタスクスケジューラでもOKかもしれませんが、8時間だったり、別のプログラムでは12時間毎だったりと、
> 指定の時間に作業をするのに便利だったもので、Application.OnTime はけっこう使ってしまいました。
>
> 何か代替方法があるといいのですが…
代替方法も何も、そのものずばり一定時間おきに繰り返す設定もできるのですが。
http://www.atmarkit.co.jp/fwin2k/win2ktips/1332r …
ありがとうございます。
タスクスケジューラーは、まさにリンク先に書かれているとおり
「1日1回とか、毎週1回といったタイミングで、指定・登録したプログラムを実行するだけ」
と思っていました。
時間や分で指定する抜け道があったとは…
今回はタイマーでなんとかなりそうですが、他に使い道があったら使ってみます。
No.2
- 回答日時:
> 指定時間にFTPにファイルをアップしたり、指定時間にWEBブラウザからHTMLを取得したり
それはプログラムでどうこうするんじゃなくってタスクスケジューラを使った方がいいんじゃないかなぁ。
http://technet.microsoft.com/ja-jp/library/cc721 …
これを使えば、特定の時間に特定のプログラムを起動することができるから、「FTPにファイルをアップ」とか「WEBブラウザからHTMLを取得」とかだけするプログラムなりスクリプトなりをつくって、スケジューラに「毎日××時に○○を実行」という風に設定すればお望みのことはできますよ。
ありがとうございます。
言葉が足らなかったようですみません。
現在のVBAでは、フォームが起動する時に、UserForm_Initializeで、TextBox1にNow()を取り込んでいるので、
----------------------------
Sub test1()
Dim adtim As Variant
''次回動作時間を決定
adtim = DateAdd("h", 8, TextBox1.Value)
Application.OnTime adtim, "test1"
TextBox1.Value = adtim
~プログラム作動(例)HTML取得~
End Sub
----------------------------
のような記述になっていて、現在の時間に8時間を加えた時間が次回起動時間となり、8時間後に同じ処理が起動します。
以下、強制断するまで8時間毎にこのtest1 が自動で繰り返される事になります。
1日1回ならタスクスケジューラでもOKかもしれませんが、8時間だったり、別のプログラムでは12時間毎だったりと、指定の時間に作業をするのに便利だったもので、Application.OnTime はけっこう使ってしまいました。
何か代替方法があるといいのですが…
No.1
- 回答日時:
現在はVBをインストールしていないので、チェックできませんが、タイマーで、一定時間ごとに、指定の時間の範囲内に入っているかどうかを判別、入っているならばプロシージャを実行するというのはどうでしょうか?
注意しなくてはいけないのは、指定の時間の「範囲」の設定と、一度実行されたならば、次は無視するようにしないように工夫する必要がある点だと思います。
タイマーが1秒設定で、範囲は指定時間±1秒とした場合、そのあたりをやっていないと、2回実行されるリスクがあります。
ありがとうございます。
例えば6時間毎にプログラムを起動したい場合は、AddHours で6時間後の時間を指定して、タイマーでその時間の範囲に入っているかどうかをチェック。
範囲に入っていたら、プロシージャを起動し、時間を6時間後にずらす…
という処理の繰り返しという事でしょうか?
試験的にタイマーをつくってテストしてみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel-VBAの「しばらくお待ちください」のダイアログが自動的に閉じない 2 2023/05/24 15:31
- Visual Basic(VBA) シフト表のコマで「ブロック」されている前の時間の「出」を同一列の「休」と入れ替えたいがふぇきません。 2 2023/08/02 18:49
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- フリーソフト タスクソフト? 1 2023/01/14 07:52
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- Visual Basic(VBA) エクセル マクロ 指定日の指定時刻にプロシージャを実行 4 2022/04/17 16:44
- システム ホームページの仕組みについて 3 2022/08/16 14:33
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
このQ&Aを見た人はこんなQ&Aも見ています
-
つい集めてしまうものはなんですか?
人間誰もは1つ「やたらこればかり集めてしまう」というものがあるもの。 あなたにとって、つい集めてしまうものはなんですか?
-
一回も披露したことのない豆知識
あなたの「一回も披露したことのない豆知識」を教えてください。 「そうなんだね」と「確かに披露する場所ないね」で評価します。
-
初めて自分の家と他人の家が違う、と意識した時
子供の頃、友達の家に行くと「なんか自分の家と匂いが違うな?」って思いませんでしたか?
-
ちょっと先の未来クイズ第4問
11月ごろに発表される、2024年の「新語・流行語大賞」にノミネートされる言葉を書けるだけ書いてください。
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
VB.NETで他のプロジェクトで作成したフォームを使う方法
Visual Basic(VBA)
-
別フォームから戻ったときのイベント
Visual Basic(VBA)
-
Handlesについて
Visual Basic(VBA)
-
-
4
Designer.vbは直接コードをいじってはだめ?
Visual Basic(VBA)
-
5
配列を使わずに、変数名を動的にループで回したい
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
[teraterm] waitコマンドで停止...
-
バッチファイルの内容を表示さ...
-
exeファイルを実行するとコマン...
-
エクセル フォルダの画像を画...
-
Excel(エクセル) VBA プロシー...
-
VBscriptが起動しない?
-
バッチファイルが不正終了して...
-
ネットワーク名が見つかりません
-
これってパソコンの最適化が完...
-
【VB.NET】exeを実行すると「発...
-
VBS実行時にコマンドプロンプト...
-
PDFファイルを開き、印刷し、閉...
-
VBAを時間指定で自動実行
-
Excel VBA ステップインが途中...
-
[VBScript]ファイルの削除
-
VBSでテキストファイルを作成
-
「読み取りと実行」と「読み取...
-
Access の VBA 実行中に他の操...
-
NASに移したBATファイルからセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
exeファイルを実行するとコマン...
-
[teraterm] waitコマンドで停止...
-
これってパソコンの最適化が完...
-
VBscriptが起動しない?
-
バッチファイルの内容を表示さ...
-
「読み取りと実行」と「読み取...
-
ネットワーク名が見つかりません
-
PDFファイルを開き、印刷し、閉...
-
エクセル フォルダの画像を画...
-
VScodeのエラー解決法 Pythonの...
-
【VB.NET】exeを実行すると「発...
-
バッチファイルが不正終了して...
-
pythonスクリプトを管理者権限...
-
Excel(エクセル) VBA プロシー...
-
Excel VBA ステップインが途中...
-
NASに移したBATファイルからセ...
-
複数のbatファイルを自動実行し...
-
16進数の変換処理
-
VBScriptでコマンドプロンプト...
おすすめ情報