
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
OnTime の場合は、話がぜんぜん方法が違います。
こういうものは、直接、教わったほうが早いです。以下は、サンプルコードです。
基本的には、OnTime は、ストックする時間(myTime)はひとつだけです。
リセットする時は、OnTime_Reset を使用します。
10秒ごとに、シートに時間を書き込むマクロです。
'//
Dim myTime As Date 'モジュールレベル変数
Dim flg As Boolean
Sub Ontime_Set() 'トグルになっている
If flg = False Then
flg = True
myTime = Now + TimeSerial(0, 0, 10)
ElseIf flg = True Then
flg = False
Else
Exit Sub
End If
If Range("A1").Value = "" Then
Range("A1").Value = Format(Now, "hh:mm:ss")
End If
Application.OnTime EarliestTime:=myTime, _
Procedure:="my_Procedure", Schedule:=flg
If flg = False Then
myTime = 0
End If
End Sub
Sub my_Procedure()
'実行
With Range("A65536").End(xlUp).Offset(1)
.Value = Format(Now, "hh:mm:ss")
flg = False
myTime = 0
End With
Call Ontime_Set
End Sub
Sub Ontime_Reset()
'タイマーリセット
On Error Resume Next
Application.OnTime EarliestTime:=myTime, _
Procedure:="my_Procedure", Schedule:=False
If Err.Number > 0 Then
MsgBox "OnTime設定はされていません。", 64
Err.Clear
flg = False
Else
MsgBox myTime & "の設定は解除されました。", 64
flg = False
myTime = Empty
End If
End Sub
ありがとうございます!
これからは、あらかじめOnTimeを解除するマクロを入れていきます。
Error処理のコードも参考になりました。
No.3
- 回答日時:
「いま動いているマクロが何なのかを確認する方法はあるのでしょうか?」
自分で組んだマクロが分からないということは基本的にはありえません。どういうことか、もう少し詳しい説明が必要だと思います。
すべてのサブプロシージャやPrivate ステートメントに、ブレークポイントをつけて、確認する法はありますが、あまり賢い方法ではないと思います。メインプロシージャ自体は、自分が命令するから分かります。
なお、無限ループなどが発生しているような場合に、捕まえる方法としては、Ctrl+Pause で、Pause ボタンを何度か押せば、ハングしていなければ、止まります。そこで、VBEがロックされていなければ、エディタ・ペインの窓を見れば、どのマクロが走っているか分かります。しかし、よほど大きなマクロでない限りは、今走っているマクロを途中で調べることは無理だと思います。
説明が必要、、、確かにそうですね。申し訳ありませんでした。
もともとは稚拙なコードを書いてしまって、
Ontimeで繰り返すマクロが複数起動&終了管理が出来ていない状態が発生してしまったことから、
質問文にあるような便利機能がないかと思ったのでした。
心当たりのマクロにNo1さんのコードを付けて、
あとは終了管理を付けていくことで、当面対応していきたいと思います。
Ctrl+Pause は初耳でした、ありがとうございます。
No.2
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
エクセルVBAにおけるON TIMEメソッドの解除方法について
Visual Basic(VBA)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
VBA プロシージャの名前の取得
その他(Microsoft Office)
-
-
4
長い時間かかるマクロが実行中かどうかを表示したい
Excel(エクセル)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
7
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
8
特定マクロが実行されたか確認メッセージを出したい。 閲覧ありがとうございます。詳しい方、ご教示下さい
Excel(エクセル)
-
9
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
10
プロシージャ名の取得
Visual Basic(VBA)
-
11
VBA シートのボタン名を変更したい
Visual Basic(VBA)
-
12
OnTimeを使ったのですが「エラー」になってしまいます
Visual Basic(VBA)
-
13
エクセルマクロで、別のブックが開いているかを判定したいのですが。
その他(Microsoft Office)
-
14
【VBA-AC2000】カレントプロシージャ名を取得したい
Visual Basic(VBA)
-
15
VBAのプログラムが動いているかどうか分かるようにするには?
Visual Basic(VBA)
-
16
或るプロシージャの呼び出し元判定
その他(Microsoft Office)
-
17
エクセルVBAでUserFormを起動した時
Excel(エクセル)
-
18
DoEventsがやはり分からない
Visual Basic(VBA)
-
19
別ブックからユーザーフォームを実行したい~!!
Visual Basic(VBA)
-
20
VBA:小数点以下の数字を取得できる関数は?
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excelのマクロでボタンを押すと...
-
エクセルの表を複数枚印刷した...
-
Excel マクロの編集がグレーに...
-
エクセルの、記録を終了したマ...
-
Excelマクロをバックグラウンド...
-
エクセルで、「いいね」のよう...
-
複数のマクロボタンをまとめて...
-
エクセル ボタンに設定したマク...
-
エクセル マクロ名にブック名...
-
Excelマクロで、稼働中のマクロ...
-
エクセルマクロで、別のブック...
-
エクセルでマクロを確認できな...
-
マクロをマクロを使ってコピー...
-
Word-VBAで文字色を一括置換し...
-
バッチファイルファイル→VBS→エ...
-
エクセルでマクロ(Excel 4.0)...
-
エクセルからワードのマクロを...
-
Excelで、マクロが含まれ...
-
エクセル マクロが削除できな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excelのマクロでボタンを押すと...
-
エクセルの表を複数枚印刷した...
-
Excel マクロの編集がグレーに...
-
エクセルマクロで、別のブック...
-
エクセルの、記録を終了したマ...
-
エクセル マクロ名にブック名...
-
エクセルで、「いいね」のよう...
-
複数のマクロボタンをまとめて...
-
リーグ戦(10チーム2コート)作...
-
エクセルでマクロ(Excel 4.0)...
-
マクロ実行ボタンを自動削除したい
-
Excelマクロをバックグラウンド...
-
Excelマクロで、稼働中のマクロ...
-
Excelのマクロの復元
-
(Excel VBA)シートコピー時マ...
-
別シートのマクロボタンをマク...
-
マクロをマクロを使ってコピー...
-
エクセルでマクロを確認できな...
-
エクセルで明日の日付を表示す...
おすすめ情報