<目次>
(1) VBAで「実行時エラー ‘429’:ActiveXコンポーネントはオブジェクトを生成できません」が出た時の対処記録
(1-1) 発生状況・エラーメッセージ
(1-2) 原因
(1-3) 対処①:ThisWorkbookではなくActiveWorkbookに変更&きちんと変数定義
(1-4) 対処②:ライブラリ設定の確認
(1) VBAで「実行時エラー ‘429’:ActiveXコンポーネントはオブジェクトを生成できません」が出た時の対処記録
(1-1) 発生状況・エラーメッセージ
今まで問題なく動作していたExcelで突如、下記のエラーが発生しました。
(エラーメッセージ)
実行時エラー ‘429’:
ActiveXコンポーネントはオブジェクトを生成できません。
(図111)
具体的には、次のような「ThisWorkbook」でブックのオブジェクトにアクセスした際に発生しました。
WorkSheetCount = ThisWorkbook.Worksheets.Count
(1-2) 原因
原因はハッキリとは分からず・・。「ThisWorkbook」で何かしら問題が発生している、という所までしか分かりませんでした。
また、元々は正常に動作していた所から、突然に上記のエラーが出るようになるまでの間にあった疑わしい出来事として、OneDrive上に登録⇒ダウンロードした等が直接原因として考えられます(※推測です)。
(1-3) 対処①:ThisWorkbookではなくActiveWorkbookに変更&きちんと変数定義
「ThisWorkbook」と記載した箇所を以下のポイントを変更する事で、事象が改善しました。
・①ThisWorkbook⇒ActiveWorkbookに変更
・②Dimで変数定義&Setで変数セット
(修正前)
WS_Count = ThisWorkbook.Worksheets.Count
(修正後)
Dim WB As Workbook
Set WB = ActiveWorkbook
WS_Count = WB.Worksheets.Count
(1-4) 対処②:ライブラリ設定の確認
今回の原因ではありませんでしたが、疑わしい可能性がある箇所をもう一点ご紹介します。こちらは「ライブラリ設定」の不足があれば追加する、というものです。
・①開発タブからVBAのエディタを開いて、メニュー「ツール」⇒「参照設定」を開きます。
(図131)参照設定の開き方
・②問題なく動いているものと比較し、不足があれば追加します。
⇒オブジェクトや処理によっては、ライブラリの追加が必要になるため、エラーになっている処理がライブラリを必要とするか?は要確認です。