ADVERTISEMENT

【Excel】ExcelでVBA参照設定がMISSINGになる時のライブラリ確認

【Excel】ExcelでVBA参照設定がMISSINGになる時のライブラリ確認
🛡️ 超解決

Excel VBAの参照設定で「MISSING」と表示されると、マクロが正しく動作しなくなります。このエラーは、参照しているライブラリ(DLLやOCX)のバージョンが異なる、または該当ライブラリがインストールされていない場合に発生します。特に会社のPCでは、他のユーザーが作成したマクロを共有した際に頻繁に遭遇します。本記事では、MISSINGエラーの原因を特定し、ライブラリを適切に確認・修正する方法を、具体的な手順とともに解説します。

【要点】この記事で確認すること

  • 最初に見る場所: VBAエディタの「参照設定」ダイアログ。MISSINGと表示される項目を特定します。
  • 切り分けの軸: 端末側のライブラリ不足か、バージョンの不一致か、参照パスの変更かを確認します。
  • 注意点: 会社PCでは管理者権限が必要なライブラリ追加やレジストリ変更は避け、IT部門に連絡してください。

ADVERTISEMENT

MISSINGエラーが発生する主な原因

MISSINGエラーは、VBAが参照する外部ライブラリが何らかの理由で利用できなくなったときに発生します。原因として最も多いのは、ライブラリのバージョン不一致です。例えば、開発環境では「Microsoft Scripting Runtime 5.8」を使用していたが、実行環境には「5.7」しかインストールされていない場合、参照設定がMISSINGとなります。また、参照先のファイル(DLLやOCX)が削除されたり、パスが変更された場合も同様です。さらに、OfficeのバージョンアップやWindows Updateによってライブラリの仕様が変わることもあります。これらの原因を理解することで、対処の方向性が決まります。

バージョン不一致によるMISSING

同じライブラリでも、バージョンが異なればGUID(グローバル一意識別子)が変わります。参照設定ではGUIDとバージョン情報が保存されているため、実行環境のライブラリバージョンが異なるとMISSINGと判断されます。特に、ActiveXコンポーネントやOffice関連のライブラリ(例: Microsoft Forms 2.0 Object Library)で発生しやすいです。

ライブラリそのものの欠落

特定のアプリケーションに依存するライブラリ(例: Adobe AcrobatのPDFライブラリやサードパーティ製のCOMコンポーネント)がインストールされていない場合、参照設定がMISSINGになります。また、64bit版Officeで32bit版専用のライブラリを参照しているケースも該当します。

お探しの解決策が見つからない場合は、こちらの「Excelトラブル完全解決データベース」で他のエラー原因や解決策をチェックしてみてください。

参照設定を確認する手順

以下の手順で、VBAエディタの参照設定を確認し、MISSINGの原因を特定します。

  1. Excelを開き、Alt + F11 キーを押してVBAエディタを起動します。
  2. メニューから [ツール] → [参照設定] をクリックしてダイアログを開きます。
  3. 参照設定一覧の中から、先頭に「MISSING:」と表示されている項目を探します。これが問題のライブラリです。
  4. MISSING項目をクリックして選択し、ダイアログ下部の「参照先」欄に表示されるパスをメモします。このパスが存在するか確認します。
  5. 該当ライブラリがインストールされているか調べます。例えば、C:\Windows\System32 や C:\Windows\SysWOW64 配下に該当DLLがあるか確認します。
  6. もしライブラリが別のバージョンで存在する場合、参照設定のチェックを外し、一覧から正しいバージョンを探してチェックを入れ直します。一覧にない場合は「参照」ボタンから該当ファイルを直接指定することも可能です。
  7. 修正後、一度参照設定のダイアログを閉じ、再度開いてMISSINGが消えたことを確認します。マクロを実行してエラーが出ないかテストしてください。

なお、参照設定の変更はVBAプロジェクトの他の部分に影響を与える可能性があるため、変更前には必ずバックアップを取ってください。

主な参照ライブラリとその役割の比較

よく使用される参照ライブラリと、その役割、MISSINGが発生しやすい状況を以下の表にまとめました。

ライブラリ名 役割 MISSINGが起こりやすい状況
Microsoft Scripting Runtime ファイルシステムオブジェクト(FSO)の提供 バージョン違い(5.8→5.7など)
Microsoft Forms 2.0 Object Library ユーザーフォームのコントロール Officeのバージョンアップ時に旧バージョンが無効になる
Microsoft Common Controls (MSCOMCTL.OCX) ツリービュー、リストビューなどの拡張コントロール 64bit Officeでは使用不可(32bit版のみ)
Microsoft ActiveX Data Objects (ADO) データベース接続 バージョン違いや、別のMDACバージョン

この表を参考に、MISSINGとなっているライブラリの性質を把握し、適切な対処を行ってください。

ADVERTISEMENT

失敗しやすいパターンとその対策

MISSINGエラーへの対処でよくある失敗を事前に知っておくと、無駄な手間を省けます。

参照設定を外すだけで凌ごうとする

MISSING項目のチェックを外してエラーを消そうとする方がいますが、そのライブラリに依存するコードが動かなくなるため、別のエラーが発生します。必ず正しいライブラリに再設定するか、コードを修正する必要があります。

64bitと32bitの混在

64bit版Officeでは、32bit専用のOCXやDLLを参照できません。もし参照設定に32bitライブラリが含まれているとMISSINGになります。この場合、64bit対応の代替ライブラリを探すか、Declareステートメントで代用する必要があります。なお、会社PCではOfficeのビット数を勝手に変更できないため、IT部門に相談してください。

管理者に伝えるべき情報

会社のPCでMISSINGエラーが発生した場合、自分でレジストリを編集したり、システムフォルダにファイルをコピーするのは危険です。以下の情報をまとめて、IT部門や管理者に伝えるとスムーズです。

  • エラーメッセージのスクリーンショット(MISSINGと表示されている部分)
  • VBA参照設定ダイアログのスクリーンショット(全体)
  • ExcelとOfficeのバージョン(ファイル → アカウント → Excelのバージョン情報)
  • 問題のブックが動作していた環境(例: 以前はWindows 10+Office 2016で動いていた)
  • 使用しているライブラリの一覧(参照設定で全て表示)

管理者はこれらの情報をもとに、ライブラリのインストールやバージョン調整を行えます。特に、業務で必要なライブラリが標準インストールされていない場合は、追加の展開を依頼できます。

よくある質問

MISSINGの参照設定を無視してマクロを実行しても大丈夫ですか?

無視すると、そのライブラリが提供するオブジェクトや関数が使えなくなり、実行時に「ユーザー定義型は定義されていません」などのエラーが発生します。必ず修正してください。

一覧に正しいライブラリが見つからない場合はどうすれば?

該当ライブラリがPCにインストールされていない可能性があります。参照設定ダイアログの「参照」ボタンから手動で該当ファイルを指定する方法もありますが、ファイル自体がない場合はインストールが必要です。管理者に依頼してください。

参照設定を新しいバージョンに変更しても問題ありませんか?

通常は問題ありませんが、互換性がない場合は新バージョンで廃止されたメソッドなどがあるため、コードの修正が必要になることがあります。変更後は必ず動作確認を行ってください。

まとめ

VBAの参照設定でMISSINGが発生した場合、まずはどのライブラリが対象かを特定し、バージョン不一致やライブラリ欠落の有無を確認します。自分で解決できない場合は、管理者に正確な情報を伝えて対処を依頼しましょう。参照設定を安易に外すのではなく、正しいライブラリに置き換えることが重要です。本記事が、MISSINGエラーの解決に役立つことを願っています。


📊
Excelトラブル完全解決データベースこの記事以外にも、様々なエラー解決策をまとめています。困った時の逆引きに活用してください。

ADVERTISEMENT

この記事の監修者
📈

超解決 Excel・Word研究班

企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。

🏆
超解決 Excel検定 あなたのExcel実務能力を3分で測定!【1級・2級・3級】

ADVERTISEMENT