
6時間くらい動作するEXCEL2000のマクロ作ったのですが、間違えて重複起動をしてしまうことがあります。
次のような対応策を考えてみたのですが、マクロの作り方がわかりません。
(1)マクロの起動時に、マクロ内で現在動作しているマクロと重複チェックを行い、現在動作しているマクロを終了し、新たにマクロを開始する方法
(2)マクロの起動時に、マクロ内で現在動作しているマクロと重複チェックを行い、エラーメッセージを出力する方法
(3)現在稼動しているマクロを表示確認できる方法
他の方法でも結構ですので、マクロをご教示ください。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは。
(2)の方法ですが、1. プライベート変数myFlagを宣言
2. マクロの実行時に myFlag の値を調べる
2-1. False なら myFlagにTrueをセットし、以降のマクロを実行する
2-2. True ならマクロ実行中なので、処理中止
3. 一応、全ての処理の最後に、 myFlag = True としておく
のような処理になるかと思います。具体的には、
Private myFlag As Boolean
Sub TEST()
If myFlag Then
MsgBox "既に実行中です..."
Exit Sub
End If
'myFlag=Falseなら以降を実行
myFlag = True
'(略)これ以降に処理を書く
'処理の最後に一応
myFlag = False
End Sub
こんな感じでしょうか。
あとは、6時間も稼動しているわけですから、プログレスバーでもなんでもよいので進捗状況を表示した方がよいでしょうね。
はずしていたら、すみません。
この回答への補足
すみません。今、気が付いたのですが、Aplication.OnTimeは、その処理が完了しなくても、次の処理に進むんですね。
実は、マクロAから別のマクロBを、10分おきに、36回 Application.OnTimeで起動していたので、マクロA自体は終了済みで、一瞬にmyFlag = Falseになっていました。
Application.OnTime TimeValue("09:00:00"), "マクロ"
Application.OnTime TimeValue("09:10:00"), "マクロ"
・
・
・
Application.OnTime TimeValue("15:00:00"), "マクロ"
説明不足で申し訳ありません
No.3
- 回答日時:
まだまだ色んなパターンが想定されます。
例えばファイル”あ”の中にマクロAとマクロBが存在し、ファイル”あ”を誤って二重起動してしまった場合やetc...どのパターンでも確実なのは、ある決められたフォルダー(c:\tempなど)にマクロAが起動しているというファイル(なんでもよい)を作成し全て完了したらそのファイルを削除する。
No.2
- 回答日時:
重複起動をしては困る理由を補足説明お願い致します。
それにより対処方法が異なります
この回答への補足
マクロAから別のマクロBを、9時から15時まで10分おきに、36回 Application.OnTimeで起動しています。
Application.OnTime TimeValue("09:00:00"), "マクロB"
Application.OnTime TimeValue("09:10:00"), "マクロB"
・
・
・
Application.OnTime TimeValue("15:00:00"), "マクロB"
8時にマクロAを起動し、誤って10時にマクロAを起動した場合、10時以降はマクロBが2回動いてしまうのを防ぎたいと思っています。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBA アドインについて お詳しい方 ご教授をお願いします。 相談事項 現在以下の対応を実施した所、 1 2022/11/02 16:53
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 2 2023/03/02 18:54
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて 重複したものがあれば行を削除するとい 1 2023/02/27 18:49
- Excel(エクセル) Excel起動時にエラーダイアログが表示される 3 2022/07/28 19:52
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Visual Basic(VBA) vbaエクセルマクロについて あるデータを作成し、デスクトップに.xlsx形式で保存するマクロを作成 6 2023/03/03 18:05
- Excel(エクセル) 2つのマクロを連続して動かしたい 3 2022/09/20 23:46
- Excel(エクセル) Excelのマクロについて:コピー→セル移動→貼り付け 3 2022/04/17 20:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Word(ワード) Word 2016のマクロを Word 2021のWordでキー動作させたい 3 2023/04/12 16:14
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAで二重起動を防止したいのですが、
その他(Microsoft Office)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
エクセルの二重起動をやめたい
Visual Basic(VBA)
-
-
4
フォームの二重起動の阻止
Visual Basic(VBA)
-
5
タイマーマクロの二重起動防止をしたい
Visual Basic(VBA)
-
6
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
7
Excelのマクロボタンをダブルクリックされて困っています
Visual Basic(VBA)
-
8
エクセルVBAのフォームを最前面にする方法を教えてください。
Visual Basic(VBA)
-
9
ユーザーフォームをホイールでスクロールする方法(Excel2000VBA)
Excel(エクセル)
-
10
VBAにてメッセージボックスを最前面に表示させる
その他(プログラミング・Web制作)
-
11
Excelマクロで、稼働中のマクロを確認する方法
その他(Microsoft Office)
-
12
既にファイルが開いているのなら開かない(二重起動防
Access(アクセス)
-
13
Access の VBA 実行中に他の操作をさせたくない
Visual Basic(VBA)
-
14
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
15
Excel VBAで「プログラム実行」ボタンと「プログラム停止」ボタンをつけたい
Excel(エクセル)
-
16
ファイルの2重に開いた場合の処理(エクセルVBA)
Access(アクセス)
-
17
VBA シートの切り替えができないようにするには
PowerPoint(パワーポイント)
-
18
VBAでEmpty値って何ですか?
Excel(エクセル)
-
19
ExcelVBAにてアプリをタスクマネージャーから強制終了させたいのですが
Visual Basic(VBA)
-
20
VBAで文字列を数値に変換したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
特定のPCだけ動作しないVBAマク...
-
エクセルで特定の列が0表示の場...
-
一つのTeratermのマクロで複数...
-
Excel・Word リサーチ機能を無...
-
Excel_マクロ_現在開いているシ...
-
バッチファイルでEXCELを起動し...
-
ExcelのVBA。public変数の値が...
-
ExcelのVBAを使ってタイトル行...
-
メッセージボックスのOKボタ...
-
マクロ実行時、ユーザーフォー...
-
エクセルに張り付けた写真のフ...
-
アクセス マクロ クリップボ...
-
EXCEL VBAでマクロの最後でFind...
-
TERA TERMを隠す方法
-
WORD テキストボックスを全ペ...
-
EXCELのVBAマクロでパソコンを...
-
TeraTermマクロの文字列結合
-
エクセルで別のセルにあるふり...
-
マクロで待機時間を作りたい
-
accessで未入力の場合にメッセ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで特定の列が0表示の場...
-
特定のPCだけ動作しないVBAマク...
-
Excel・Word リサーチ機能を無...
-
一つのTeratermのマクロで複数...
-
Excel_マクロ_現在開いているシ...
-
メッセージボックスのOKボタ...
-
Excel マクロ VBA プロシー...
-
ExcelのVBA。public変数の値が...
-
エクセルに張り付けた写真のフ...
-
エクセルで別のセルにあるふり...
-
ExcelVBAでPDFを閉じるソース
-
ダブルクリックで貼り付けた画...
-
Excel マクロでShearePoint先の...
-
TERA TERMを隠す方法
-
マクロ実行時、ユーザーフォー...
-
Excelのセル値に基づいて図形の...
-
特定文字のある行の前に空白行...
-
エクセルマクロでワードの一ペ...
-
エクセルで縦に並んだデータを...
-
Excel VBAからAccessマクロを実...
おすすめ情報