【Excel】「コンパイルエラー: プロジェクトまたはライブラリが見つかりません」2007なら動作するのに2019だと動かない

コンパイルエラープロジェクトまたはライブラリが見つかりませんの解決方法

VBAマクロが組み込まれたExcelファイル。

Windows10のExcel 2007なら動作するのに、Windows10のExcel 2019だと動作しませんでした。

どうすれば正常に動作するようにできるのか調査してみることにしました。

表示されるエラーメッセージについて

Excelのエラーメッセージ画面

動作が終了し、表示されるエラーメッセージはこちら。

エラーメッセージ

コンパイルエラー: プロジェクトまたはライブラリが見つかりません

なんだかややこしそうなエラーが出ていました。

Excelファイルの状態について

Excelファイルの状態についてまとめてみました。

  • Windows10、Excel 2007だと正常に動作する
  • Windows10、Excel 2019の場合のみ、以下の条件で発生する
    • Excelファイルを開いても、すぐにエラーが表示されるわけではない
    • ユーザーフォームのボタンを押すと正しく動作する
    • ユーザーフォームのラジオボタンを選択する項目のみエラー出力される

どうやら、ラジオボタンに原因があるようでした。

正常に動作するコードとエラーが発生するコード

正しく動作するコード部分と、エラーが出るコード部分を比較してみました。

正常に動作するコード

Private Sub CommandButton1_Click()
    ActiveCell.Value = "りんご"
    Unload UserForm3
End Sub

エラー出力するコード

Private Sub CommandButton8_Click()
    If OptionButton6.Value = True Then
        drink = "水"
    ElseIf OptionButton7.Value = True Then
        drink = "お茶"
    ElseIf OptionButton9.Value = True Then
        drink = "ポカリ"
    Else
        drink = ""
    End If
    ActiveCell.Value = drink & " を飲みました"
    Unload UserForm3
End Sub

怪しいとすれば、変数「drink」でしょうか。。。

定義を追加してみます。

変数の定義で正常に動作するようになりました!

しょうもないことですが、正常に動作するようになりました!

Private Sub CommandButton8_Click()
    Dim drink As String

    If OptionButton6.Value = True Then
        drink = "水"
    ElseIf OptionButton7.Value = True Then
        drink = "お茶"
    ElseIf OptionButton9.Value = True Then
        drink = "ポカリ"
    Else
        drink = ""
    End If
    ActiveCell.Value = drink & " を飲みました"
    Unload UserForm3
End Sub

原因はユーザー定義の変数があるのに、正しく指定していないことにありました。

Dimによる変数の宣言を追加すると、コンパイルエラーは表示されなくなりました!

Excel 2007の場合、しっかり定義していなくても動作していたところ、2019の場合、きちんと記述しておかないとダメになったようです。

原因はわかってスッキリしました!

以上、「コンパイルエラー: プロジェクトまたはライブラリが見つかりません」の解決の一例でした。

もう少しわかりやすいエラーメッセージにしてほしいです。。

応援してもらえると幸いです。

PVアクセスランキング にほんブログ村