[[20241002142612]] 『VBAで「コードの実行が中断されました」』(VERISA) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『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

このプログラムで中断されたら、たまったもんじゃないですよね。
ちなみにExcelのバージョンは何でしょうか?
[[20240904210342]] にもありますが、同じバージョンだったら何か因果関係があるのかも。
違ってたらごめんなさい。

(みそ汁) 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

ご連絡が遅くなりました。m(__)m
当方では何ら問題なく動いております。[再現しませんでした。]

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.