[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAで「コードの実行が中断されました」』(VERISA)
仕事でVBAを扱っています。
最近VBA実行中に「コードの実行が中断されました」とメッセージダイアログが 突然出てきてマクロが停止する現象が頻発しています。
停止する場所は毎回マチマチで、「End If」だの変数への代入箇所など 到底止まるような場所ではない箇所で発生しています。
当然ながらブレイクポイントの設定をしている箇所ではありませんし、 エラーが発生して止まっているわけではないです。
APおよび端末の再起動を実施しても、Officeを再インストールしても 症状は変わりませんでした。
コード自体を別端末で実行しても発生頻度は下がりますが発生します。 別コードでも発生します。 コードボリュームは関係なさそうです。
原因・対策・回避方法等お分かりになる方いらっしゃいますでしょうか。
< 使用 Excel:Microsoft365、使用 OS:Windows11 >
こちらの現象でしょうか? Excel作業をVBAで効率化 https://vbabeginner.net/code-execution-has-been-interrupted/ (佐田) 2024/10/02(水) 14:46:55
コメントありがとうございます。 リンク先、拝見しました。
状態としてはまさにコレです。 ただ、デバッグボタン押下後のCtrl+Breakでも再起動でも 直らないんです。
タイミングも位置もバラバラで試しに作ったテスト用の 初実行でも起こるんです。 (VERISA) 2024/10/02(水) 14:54:34
差し支えなければここに貼り付けてみて下さい
当方でも発生するかしないかくらいは、お手伝い
出来るかもしれません。
(隠居Z) 2024/10/02(水) 15:04:24
コメントありがとうございます。
こちらはテスト用に作成したコードです。 テスト用なので中身はどうでもいいんですが、初実行の際はDo〜Loop内の「End If」で停止しました。
Sub Stop_TEST()
Dim ws As Worksheet Dim rng As Range Dim cell As Range Dim sum As Double Dim count As Long Dim threshold As Double Dim maxIter As Long Dim iter As Long
' 初期化 Set ws = ThisWorkbook.Sheets("Sheet1") Set rng = ws.Range("A1:A100") threshold = 50 sum = 0 count = 0 iter = 0 maxIter = rng.Cells.count
Do ' セルの値が閾値を超えるかどうかをチェック If rng.Cells(iter + 1).Value > threshold Then ' 条件を満たすセルの値を集計 sum = sum + rng.Cells(iter + 1).Value count = count + 1 End If iter = iter + 1 Loop While iter < maxIter
' 結果を表示 MsgBox "閾値 " & threshold & " を超えるセルの数: " & count MsgBox "閾値 " & threshold & " を超えるセルの合計値: " & sum
' ワークシートに結果を書き込む ws.Range("C1").Value = "閾値" ws.Range("C2").Value = threshold ws.Range("D1").Value = "セルの数" ws.Range("D2").Value = count ws.Range("E1").Value = "合計値" ws.Range("E2").Value = sum
' 変数の値によってセルの色を変更 If sum > 1000 Then ws.Range("E2").Interior.Color = RGB(0, 255, 0) ' 緑 ElseIf sum > 500 Then ws.Range("E2").Interior.Color = RGB(255, 255, 0) ' 黄色 Else ws.Range("E2").Interior.Color = RGB(255, 0, 0) ' 赤 End If
End Sub (VERISA) 2024/10/02(水) 15:31:51
(みそ汁) 2024/10/02(水) 16:07:45
私自身も同じ問題に遭遇したことがあります。 残念ながらどのように解決したか覚えていません。 というか、いろいろ試しているうちに正常に戻った、というのが正直なところです。
https://colinlegg.wordpress.com/2013/03/10/phantom-breakpoints/
の Jeff Weir氏の投稿に
CleanProject VBA addin from AppsPro で問題が解決したとの記述あり
http://www.appspro.com/Utilities/CodeCleaner.htm
で入手できますが、私自身は試していませんのでご参考まで。 (jindon ) 2024/10/02(水) 16:18:21
みそ汁さん、コメントありがとうございます。
よく発生している端末のものは Excel365 ver2402 Biild16.0.14931.20118(32bit) で、2台目は Excel365 ver2202 Biild16.0.17328.20550(32bit) です。 2台目のものはたまには発生しますが基本的にあまり発生しません。 (こちらはWindows10です)
jindon さん、コメントありがとうございます。
残念ながら会社のPCに外部APのインストールはできませんが、 リンク先の投稿記事、参考になります。 (VERISA) 2024/10/02(水) 16:30:20
うろ覚えの上何の根拠もありませんが、ダメもとで...
どこかに新規フォルダを作成し、問題のファイルを移動してそこから開く。 なんてこともしました。
tempファイルを削除なんかもしましたね... (jindon ) 2024/10/02(水) 16:59:21
win 10 home Version 22H2
Excel 2016 Personal premium 32bit ← 365機能が使えるタイプです。
でした。
ちなみに vbe の ▶ ┃┃ ■ ←停止ボタン
ctrl + ■ を 押しても 治まりませんでしょうか。。。ダメもとで^^;
お役にたてず、すみません m(__)m
(隠居Z) 2024/10/02(水) 19:38:49
jindon さん、隠居Zさん コメントありがとうございます。返信が遅くなりすみません。
結果として解決した模様です。(今のところメッセージは出なくなりました。) 隠居Zさんご提示の方法でうまくいっています。(複合技かもですが・・) みなさんありがとうございました。
試行と結果を載せておきますね。 1.「コードの実行が中断されました」メッセージダイアログ出現後、 デバッグボタンを押下してCtrl+Break → 結果× 2.Excel再起動 → 結果× 3.PC再起動 → 結果× 4.別端末で同プログラムを実行 → 結果△(頻度はかなり減った) 5.Application.EnableCancelKey = xlDisabled を プログラムに埋め込む → 結果△(勝手に止まらなくなったけど、自分で止められなくなった) 6.キャッシュをクリア → 結果× 7.サードパーティーのクリーニングツール(CleanProject VBA addin from AppsPro) → 結果-(こちらの都合でインストールできなかった) 8.新規フォルダを作成し、問題のファイルを移動してそこから開く → 結果× 9.AddInファイルを切り離してから実行 → 結果× 10.「コードの実行が中断されました」メッセージダイアログ出現後、 デバッグボタンを押下してCtrl+Breakを押下、Ctrlを押しながらVBEのツールバーの 「■」(リセット)をクリック → 結果○ (VERISA) 2024/10/03(木) 09:21:12
試行が抜けてました。 11.Officeを再インストール → 結果×(少しの間は出なかったんですけど・・) 12.別端末からリモート接続で実行 → 結果×
原因はよくわかりませんが、10を試行後は順調です。 この現象はファントムブレークポイントって言うんですね。 既知のバグということがわかりました。 (VERISA) 2024/10/03(木) 09:28:49
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.