

こんにちは。現在エクセルでフォームを使用したVBAマクロを作成中です。
内容はフォーム内のテキストボックスに制限時間を設けて文字入力を行ってもらうものです。
Sub テスト()
do until
・
・
call timeup
loop
End Sub
Sub timeup()
dim timekp as integer
'テストの開始時間をキープ
'Application.OnTime timekp + TimeValue("1:00:00"),"endform"
'1時間経過後終了を促すフォームを表示する
End Sub
Sub endform()
load userform1
userform1.show
'エクセル終了のコマンドボタンがついているフォームを表示する
End Sub
マクロは大まかに記述しましたが以上のようにすると、一度はマクロの作成が成功したように終了するのですが、ブックを開けたままでいると1時間後に自動的にuserform1が表示されてしまいます。また、ブックを閉じていても自動的にオープンし、(マクロを有効にする)をONにするとデバック状態となります。
変数のtimekpを初期化する事で凌げると思ったのですが、うまくいきません。
以前マクロのヘルプを操作している時にON TIMEメソッドを解除する方法が掲載されていたように思うのですが、探し方がマズイのか見つけられませんでした。
マクロの記述方法がマズイのでしょうか?ON TIMEメソッドを解除しない限り、いつまでもこのメソッドは効力を発揮するのでしょうか?
また、ON TIMEメソッドを解除できるメソッドや良い解決方法がありましたら入門書等を片手にマクロを作成している素人にご教授の程お願い致します。
No.2ベストアンサー
- 回答日時:
>ON TIMEメソッドを解除
OnTimeのヘルプはごらんになられましたか?
expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule)
の
Schedule にfalseを設定することで、直前の実行指定を解除することができます。
具体的には
Application.OnTime timekp + TimeValue("1:00:00"),"endform",,false
とでもすればいいです。
On Timeのヘルプの使用例に説明が記載されていました。
ヘルプはチェックしていたのですが専門用語が多く、省略可と記載されている部分はツイ読み飛ばしてしまうのです。時にはヘルプのヘルプが欲しいくらいです。
今日早速実行したところ成功しました。本当に有難うございました。
No.3
- 回答日時:
こんにちは。
do until
・
・
call timeup
loop
このようにLoopしたら、何度も、行うのではないでしょうか?
expression.OnTime(EarliestTime, Procedure, LatestTime, Schedule)
Schedule :=False にするのは、実行前の中途キャンセルのはずですから、今回の場合は、一体、いくつ設定されているのか見当がつきませんが、少なくとも、Loop で、設定しているところを見直さないとダメだと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
OnTime の中断方法について
Excel(エクセル)
-
OnTime 使用時のプロシージャへの引数の与え方、その記述方法を教えて下さい。
Visual Basic(VBA)
-
Excel(エクセル) VBA プロシージャーをミリ秒で繰り返し実行する方法
Excel(エクセル)
-
-
4
VBA=一定時間エクセルの入力操作がない場合、自動的にそのブックを閉じたい
Windows Vista・XP
-
5
OnTimeを使ったのですが「エラー」になってしまいます
Visual Basic(VBA)
-
6
タイマーマクロの二重起動防止をしたい
Visual Basic(VBA)
-
7
VBA Ontime を一旦停止をさせるには
Excel(エクセル)
-
8
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
9
Excelマクロで、稼働中のマクロを確認する方法
その他(Microsoft Office)
-
10
「一定の時間間隔で5秒毎にMacro1を実行する」
Excel(エクセル)
-
11
Excel VBAで「プログラム実行」ボタンと「プログラム停止」ボタンをつけたい
Excel(エクセル)
-
12
ontimeのリセット方法
Excel(エクセル)
-
13
タイムマクロ内にタイムマクロは可能ですか?
Excel(エクセル)
-
14
時間のマクロで最初はその時間、2回目以降は15分ごとに自動で実行させたい。
Excel(エクセル)
-
15
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
16
VBA(エクセル)で自動的にボタンをクリックさせるには
その他(プログラミング・Web制作)
-
17
エクセルでVBAを使用して1分毎にファイルを保存するプログラムを書きた
Excel(エクセル)
-
18
vba セルに入力した時間をマクロで受け取るには?
Excel(エクセル)
-
19
エクセルで定期的(30分おき)にマクロを実行させる方法は?
Excel(エクセル)
-
20
エクセル時間毎ごとにマクロを実行するやり方。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
ウィンドウを最前面にできません
-
VBPをダブルクリックするとたま...
-
引数は省略できません。とのコ...
-
エクセルのマクロでプリンタを...
-
配列のメソッド
-
C#の動的キャスト
-
javascriptからjavaを呼び出したい
-
DataGridViewでセルクリックイ...
-
タブコントロールの問題 (VB)
-
Excel VBA でExcelを終了したい...
-
mainメソッドのthrows節で設定...
-
VBA コピーが出来ません…!
-
Excel : OpenTextメソッドが正...
-
InetAddress#getHostNameについ...
-
Labelコントロールに数字を代入...
-
eclipse-Tomcatでのデバッグに...
-
ODBCでMoveNextがうまく動作し...
-
コマンドプロンプト実行後に画...
-
boolean型のフィールドとゲッタ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBAで、条件に一致する...
-
配列のメソッド
-
mainメソッドのthrows節で設定...
-
final修飾子を使っているのに、...
-
0歳児の指しゃぶりに関して
-
javascriptからjavaを呼び出したい
-
DataGridViewでセルクリックイ...
-
JSPで<SELECT>の中にDBから持っ...
-
boolean型のフィールドとゲッタ...
-
Labelコントロールに数字を代入...
-
ウィンドウを最前面にできません
-
処理内容がほぼ同じメソッドの...
-
eclipse-Tomcatでのデバッグに...
-
CALLされていないメソッドを見...
-
FEM解析の読み方は?
-
エクセルVBAにおけるON TIMEメ...
-
Application.Wait の参照設定
-
コマンドプロンプト実行後に画...
-
VBA コピーが出来ません…!
-
drawStringで文字間隔の調整
おすすめ情報