フォームのエラーについて

タグの編集
投稿者 ケンケン  (社会人) 投稿日時 2025/3/13 10:41:41
vbのFORMをダブルクリックする。
【エラー HRESULT E_FAIL が COM コンポーネントの呼び出しから返されました。】 
のメッセージが出ます。
 無視して継続するをクリックすると
  【これらの例外を無視すると、デザイナーは不安定な状態になり、制御が失われる場合があります】で
   続行しますかで【はい】をクリックすると
    formが何も無い初期値の画面に成ります
   ※何方か回避方法をご存知の方ご教授お願いします。
投稿者 とくま  (社会人) 投稿日時 2025/3/17 15:07:16
前回の質問
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=31009
とほぼ同様ですが、エラー内容からは、
「フォームに配置しているコントロールのどれかで、何かエラーが起こりました。フォームの表示ができません」
程度の情報しか得られていません。

まずは、そのエラーを引き起こしているコントロール(できれば、そのコントロールのどのコマンドか1行まで限定)を、デバッグして特定してください。
特定できたのであれば、その COM の提供元のホームページなどで、現行バージョンの VisualStudio に対応しているか確認してください。
対応しているのであれば、新規プロジェクトで正しく参照できることを確認してください。
投稿者 のりす  (社会人) 投稿日時 2025/4/15 10:14:43
私も同じ現象が起きました。実行していたプログラムはサービスなのですが、突然同じエラーメッセージを吐いた後、何度再起動かけても同じメッセージがでるだけで、どうしようもなかったのですが、実行プログラムが保管されているフォルダのバックアップを取ったのち、元のフォルダを削除して、バックアップから元のフォルダを作成しなおし、プログラムを起動したら何事もなく起動するようになりました。

根本的な解決にはならないですが、一度試してみてください。
投稿者 (削除されました)  () 投稿日時 2025/4/16 08:23:45
(削除されました)
投稿者 とくま  (社会人) 投稿日時 2025/4/16 08:26:24
ケンケンさんは、マイグレーションの質問もしているので、そもそも新規プロジェクトで動く確認から
必要なのですが、特に環境とか大きく変えずに動かなくなったという場合は、

【確認①】プロジェクト配下の bin obj フォルダを削除する
※前回のビルド、デバッグ情報を保管し、うまく動かそうとしているが、そこがそもそもうまく更新できないVisualStudioのバグ

【確認②】参照設定している場合は、一度解除してプロジェクトを開きなおし、参照設定を再登録する
※DLL参照は結構複雑な歴史があって、裏で色々やってるのがうまくいかなくなってる

あたりが誰もが一度は遭遇している対処法ですかね。見た目の設定は変わって無いのに動くというパターン。
とりあえず、新規プロジェクトで作り直して動くかどうかは、かなり有力な原因の切り分けになります。
最悪、新規プロジェクトがうまく動いたら、ソース(C#なら.cs、VBなら.vb)ファイルだけ古いプロジェクトから持ってきて作り直す
なんてことも考えられるわけです。