
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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 16:59
- Access(アクセス) エクセルのマクロについて教えてください。 2 2023/02/03 16:07
- その他(プログラミング・Web制作) Pythonでexcelのvbaを作成、実行する方法について Pythonで表の自動集計プログラムを 3 2022/07/09 09:58
- Excel(エクセル) Excel起動時にエラーダイアログが表示される 3 2022/07/28 19:52
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/17 11:59
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2022/08/05 09:12
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/02/22 08:53
- Visual Basic(VBA) エクセルのマクロについて教えてください。 7 2023/07/04 09:18
このQ&Aを見た人はこんなQ&Aも見ています
-
長い時間かかるマクロが実行中かどうかを表示したい
Excel(エクセル)
-
VBAのプログラムが動いているかどうか分かるようにするには?
Visual Basic(VBA)
-
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
-
4
VBA プロシージャの名前の取得
その他(Microsoft Office)
-
5
タイマーマクロの二重起動防止をしたい
Visual Basic(VBA)
-
6
エクセルVBAにおけるON TIMEメソッドの解除方法について
Visual Basic(VBA)
-
7
プロシージャ名の取得
Visual Basic(VBA)
-
8
OnTime 使用時のプロシージャへの引数の与え方、その記述方法を教えて下さい。
Visual Basic(VBA)
-
9
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
10
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
11
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
12
EXCEL VBA セルに既に入力されている文字に文字を追加する
Excel(エクセル)
-
13
excelファイルに使われているVBAやマクロを調べるには
Excel(エクセル)
-
14
OnTime の中断方法について
Excel(エクセル)
-
15
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
16
VBAコード記述に際して、コード全体を自動的にインデント付ける方法
Access(アクセス)
-
17
ファイルのアクセス回数について
Access(アクセス)
-
18
画面ロック中にプログラム実行できないでしょうか
Windows Vista・XP
-
19
特定のシートの削除を禁止したい(ブックの保護でなく)
Excel(エクセル)
-
20
特定マクロが実行されたか確認メッセージを出したい。 閲覧ありがとうございます。詳しい方、ご教示下さい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
複数のマクロボタンをまとめて...
-
Excel マクロの編集がグレーに...
-
エクセルの、記録を終了したマ...
-
Excelのマクロでボタンを押すと...
-
エクセル ボタンに設定したマク...
-
エクセル マクロ名にブック名...
-
エクセルマクロで、別のブック...
-
Excelマクロで、稼働中のマクロ...
-
エクセルで、「いいね」のよう...
-
エクセルの表を複数枚印刷した...
-
エクセルで明日の日付を表示す...
-
(Excel VBA)シートコピー時マ...
-
Excel:マクロを消す方法教えて...
-
マクロ実行ボタンを自動削除したい
-
エクセルでマクロ(Excel 4.0)...
-
LDPlayerのマクロの編集方法を...
-
個人マクロを移動させたい
-
excelのグラフをクリックして最...
-
他のBOOKにマクロを反映させな...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WPSOffice_マクロの有効化について
-
Excel マクロの編集がグレーに...
-
複数のマクロボタンをまとめて...
-
エクセル ボタンに設定したマク...
-
エクセルでマクロ(Excel 4.0)...
-
エクセル マクロ名にブック名...
-
Excelのマクロでボタンを押すと...
-
Excelマクロで、稼働中のマクロ...
-
エクセルの、記録を終了したマ...
-
エクセルで、「いいね」のよう...
-
エクセルの表を複数枚印刷した...
-
エクセルマクロで、別のブック...
-
LDPlayerのマクロの編集方法を...
-
(Excel VBA)シートコピー時マ...
-
Excelのマクロ名の並び順の法則...
-
マクロをマクロを使ってコピー...
-
エクセルで明日の日付を表示す...
-
Excelマクロをバックグラウンド...
-
Ctrl+Zが使えない
-
マクロ実行ボタンを自動削除したい
おすすめ情報