Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2016)
ユ―ザーフォームオブジェクトが、突然消える?
投稿日時: 20/02/25 09:58:58
投稿者: WinArrow
投稿者のウェブサイトに移動

Excelのバージョンは、Excel2019です。
 
今迄、Excel2007で動作していたユーザーオームを含んだマクロです。
ユーザ−フォームには、複数のコントロールが配置していますが、
今回、問題となっているのはコマンドボタン「登録」プロシジャの中で発生しています。
このププロシジャは、200ステップのコードが記述されています。
症状は、プロシジャの終盤に、

MsgBox "「終了」で閉じてください。",Me.Caption

というコードで、Userform1オブジェクトがNothing状態になっています。
 
そこで
MsgBox "「終了」で閉じてください。",Me.optSIHARAI.Caption

に変更すれば、正常に動作します。
でも、結局、End Subで、Userorm1はUNLOADされた形になってしまい、「終了」ボタンをクリックすることはできません。
 
32bitと64Bitの違いによるバグでしょうか?
 
 

投稿日時: 20/02/26 09:45:33
投稿者: WinArrow
投稿者のウェブサイトに移動

自己解決したので、調査結果と対処方法を報告します。
 
コマンドボタンクリック時のプロシジャ内で
ユーザーフォームオブジェクトが、認識されなくなる個所を特定しました。
このプロシジャでは、標準モジュールで開いたブック内のシートを更新しています。
更新が狩猟した時点で、そのブックを上書き保存モードで閉じています。
その直後に、ユーザーフォームオブジェクト(「Me」)が認識されなくなる(ローカルウィンドウで「オートメーションエラー」)となることgわかりました。
 
対処方法
問題のプロシジャ内でh、上書き保存のみ実行し、
標準モジュールに戻ってから、閉じる
というコードに変更しました。
 
32bit/64bitの影響ではなく、MDI/SDIの影響かもしれない
という気がしています。
 
いままで、Excel2007での使用が長かったのですが、
Excel2007のPCが突然HDD故障により、入院してしまい、
急遽、Excel2019で、切替テスト中に発生した現象でした。
 
SDI環境では経験が浅く、皆さんのお知恵をいただければ、と考え、
本件に関して、しばらく閉じずにしておきます。

 
 

投稿日時: 20/03/03 09:50:15
投稿者: WinArrow
投稿者のウェブサイトに移動

閉じます。