|
▼neptune さん:
>取り敢えず気付いた点だけ。
>>Ref Edit Controls
>これを使うのをやめましょう。今回の現象と関係あるかどうかは
>分かりませんが、色んな不具合があります。
>userform,textboxで代用できたと思います。
>昔作った事ありますが、難しくはないのですが面倒くさかった記憶があります。
>面倒であれば、inputboxを使うとか。
>
>>Microsoft ActiveX Data Objects 2.8 Library
>>Microsoft DAO 3.6 Object Library
>ADOとDAOの2つのデータオブジェクトを参照設定する必要はないはずです。
>どちらかにしましょう。(2つ付けてもそれなりのコードを書けば
>問題はないとはは思うが必要ないものを参照する必要もないし、ややこしい。)
>
>それは・・・・問題外でしょ^ ^;
>調べて不要ならはずしましょう。
>
>・Option Explicitは入れてますか?
>
頂いたコメントを元に色々と検証してみました
とりあえず必要なのはDAOのみなので
他をはずして動かしてみました
[参照設定]
Visual Basic For Application
Microsoft Excel 11.0 Object Library
OLE Automation
Microsoft Office 11.0 Object Library
Microsoft Forms 2.0 Object Library
Microsoft DAO 3.6 Object Library
以上が設定してある状態で
Sub test111()
Dim i As Integer
i = 1 / 0
End Sub
このプロシージャを実行し中断状態で
適当なセルに1111を入力してコメントは出ませんでした。
ですが・・・エラーの原因が気になってしまい
(Refが問題だろうと思いながらw)
DAO + ADO で試しコメントなし
ADO + Ref でコメント発生
DAO + Ref でコメント発生
ADO のみ でコメント発生・・・あれ?
DAO のみ でコメント発生;;
他で新規にブックを作成し
同じ検証をしてみたところ
どれもコメント発生なし
検証にならないので引き続き既存ブックで検証
(このあと試行錯誤しているうちに)
VBEにてユーザーフォームを開いている状態で
上記の手順を実行するとコメントが出ることが分かりました
コメントなし→コメント発生に変わったタイミングは
Refを参照設定にいれるため
フォームを開き、そのままにした事が原因かと思います。
[開いているユーザーフォームについて]
・どのユーザーフォームでも発生
(過去にRefコントロールを配置したフォームに関わらず)
・ユーザーフォームを実行しているわけではなく
VBEにてフォームの編集ウィンドウを
バックグラウンドに置いた状態でマクロの実行
この時点で検証を断念しました。。。
[参照設定を変えてみた効果]
以前は
マクロの実行 → デバッグ → 中断状態でセルに入力
マクロの実行 → デバッグ → 停止させてセルに入力
どちらもコメントが表示されていましたが
マクロの実行 → デバッグ → 停止させてセルに入力
この手順ではコメントが表示されなくなりました。
自分なりの結論として
エクセルのエラーで以前の状態を回復を
何度か使っているし、その他の原因も含め
新規ブックでは発生しないため
このブックが破損しているのかなぁ・・・?
と、妥協してみました^^;
以前、他のブックでも同じ症状が
あったような気もするのですが
確信がないので、他のブックで発生するまで
この結論で思い込もうと考えていますw
長文になりましたが
自分では結局、原因にたどり着けなかったので
検証過程を出させてもらいました。
この内容でピンと来るものがあれば
コメント頂けると助かります;;
|
|