質問: False DoEvents End If End Sub ``` 検証の結果、**エラーが発生しました。** ステップイン実行 でもエラーが発生していることもあり、 イベント処理中に他のイベントが邪魔をしている、のではなく、 イベント終了時の処理 のどこかに**【エラー発生の原因】**が ひそんでいるのではないか、と疑っております。 (【試したこと(5)】のステップイン実行でも、 End Sub 到達後の[F8 キー]押下により、エラーが発生しています) (【追記:試したこと(7)】に続きます) ### 追記:試したこと(7) クリックに間をおくとどうなるか、検証してみました。 ・【 1 分 間隔 で Chart を クリック 】 | クリック回数 | 物理メモリの量 | | --- | --- | | 0 | 37,316 K | | 1 | 35,972 K | | 2 | 35,524 K | | 3 | 35,516 K | | 4(エラー発生) | 34,348 K | ・【 2 分 間隔 で Chart を クリック 】 | クリック回数 | 物理メモリの量 | | --- | --- | | 0 | 32,672 K | | 1 | 35,240 K | | 2 | 34,320 K | | 3 | 34,292 K | | 4 | 34,364 K | | 5 | 35,308 K | | 6(エラー発生) | 33,344 K | クリック間に時間をおいても、**エラーは発生しました。** また、メモリの方もよくわからない結果になってしまいました。 メモリ不足のエラーの割に、メモリはあまり関係なかったりするのでしょうか? ### 最後に まとめると次のようになります。 **同じ Chart を 連続的にクリックして、** **【MouseDown イベント】や【BeforeDoubleClick イベント】で** **特定のコードを実行し続けた場合、エラーが発生する。** 【同じ Chart 】というのが、エラーが発生する原因のポイントではないか、と疑っているのですが... 情けない話ですが、私ではこれ以上どう検証していけばいいのか、皆目見当もつきません。 ~~(検証にかけた時間の割に 分かったことが少なすぎて、泣きそうです)~~ エラー発生の原因について、情報いただけますと幸いです。 よろしくお願いします。 ### できないこと わけあって、次の事項を行うことはできません。 ・インストール ・管理者権限の必要な設定の閲覧・変更 ・レジストリキーの値の変更 ・Office アプリケーションの修復 ・保護ビューの設定 の 変更(現在、3つの項目すべてに チェックがついている状態 です) ### 補足情報 Windows 10 Pro メモリ:4.00 GB Excel 2016 32bit(16.0.4966.1000) ファイルサイズ 22 KB Sheet1(Main) 空のChart(種類:2-D 集合縦棒, 名前:グラフ 1)
回答: 原因究明に役立つか分かりませんが、取りあえずコメントします。 VBAはイベントドリブン(イベント駆動型)で、それらのイベントは時系列を保って制御されるわけではありません。 なので、イベント処理中に他のイベントが動作する事もあり得ます。 そうすると予期しない動作が発生します。 回避方法としては、 ・グローバルなイベント実行中のフラグを準備し、イベント開始/終了でフラグのセット/リセット。 イベント処理内では、セット/リセットの前に判定し、実行中であれば処理しないようにする。 ・処理実行後や処理前にDoeventsを実行しイベント処理の実行を促す。 等が考えられます。