次の方法で共有

「無効なオブジェクトライブラリです・・」 のメッセージが出て Excel2010 マクロが動作しない

Anonymous
2015-02-17T02:31:52+00:00

こんにちは。

とあるプロジェクトでExcelマクロのツールを作成しています。

最近開発機で動いていたマクロが別のマシンでは一切動かなくなりました。

メッセージで「無効なオブジェクトライブラリです。または定義されていないオブジェクトへの参照を含んでいます。」と表示されます。

改修を行ったのが、以下のリンク現象が出ていたころなので、原因がパッチによるものなのか、それとも改修によるものなのか、判別しません。

余計な参照の追加などは行っていません。昨年9月では間違いなく動いていたマクロのコードと比較したところ、4行くらいしか違いがなかったので改修のせいで動かなくなったとは考えにくい気がします。

http://oshiete.goo.ne.jp/qa/8854280.html

次に何をすればいいのかわからないのですが。どうすればいいでしょうか?「無効なライブラリ」だの「定義されていないオブジェクト」だのはどのようにして調べればいいのでしょうか_

よろしくお願いします。

"※ モデレーター注 : 質問の内容からタイトルを一部変更させていただきました。

変更前スレッドタイトル : Excel2010マクロが動作しない"

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2015-02-21T13:00:59+00:00

こちらで、

http://answers.microsoft.com/ja-jp/office/forum/office_2010-excel/%E7%84%A1%E5%8A%B9%E3%81%AA%E3%82%AA%E3%83%96/a5d829f7-5d1e-4254-bdd4-e97e1921aefa

さるぼーさんが紹介されているように

12月のセキュリティアップデートが原因です。

こちらは原文です。

Form Controls stop working after December 2014 Updates

http://blogs.technet.com/b/the_microsoft_excel_support_team_blog/archive/2014/12/18/forms-controls-stop-working-after-december-2014-updates-.aspx

「Warning: If this step resolves your issue, be aware that after deploying this updated project to the other users, these users will also need to have the updates applied on their systems and .exd files removed as well.」

「If you are creating new workbooks using the new controls on an updated machine, these workbooks then require all clients to have this update installed or they will error when the book is shared.」

超意訳ですが『アップデートを適用するなら一斉に行わないとトラブルよ・・・。』

私の場合は、

コンパイルエラーが止まらなくなりました。

 「無効なオブジェクト ライブラリです。または定義されていないオブジェクトへの参照を含んでいます。」

 で、Option Explicit がハイライト(青)されます。

 取りあえず、Option Explicit の行を削除してコンパイルする。

 何もない部分に半角スペース?があるように指示されてコンパイルエラー

 そこを削除すると

 Private Sub CommandButton1_Click がハイライトされて・・・多分、xlsx になるまで?

また、ActiveXのコマンドボタンを配置してあるシートごと削除しようとするとExcelが落ちます。

マイクロソフト セキュリティ情報 MS14-082 - 重要

Microsoft Office の脆弱性により、リモートでコードが実行される (3017349)

Office2007 → KB2596927

Office2010 → KB2553154

Office2013 → KB2726958

修正はいつかな?

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2015-02-20T08:52:47+00:00

​にっきー さん、こんにちは。

昨年の 12 月以降からインストールされた該当しそうな更新プログラムを順に削除してみたところ、 ActiveX コントロールの CommandButton の動作が戻り、マクロが動くようになったのですね。

具体的な方法などを書いていただいて、ありがとうございます。

そうなると、更新プログラムなど、インストールされたものの中に要因があるのでしょうかね。。

こちらの手元の Windows7 + Excel 2010 の端末でも CommandButton21 が挿入される動作が発生していて、同じような現象が確認できているという状況です。

にっきー さんが書いていただいた方法ともしかしたら同じかもしれませんが、わたしも問題が見られるブックの CommandButton のオブジェクト名をプロパティから修正し、マクロコード側も作成しなおすとブック単位では回避することができました。

CommandButton 名が変わる根本の原因については該当の情報がなく、はっきりとした原因が解らない状況なので、にっきー さんのコメントを参考にもう少し調べてみたいと思います。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

7 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2015-02-18T07:31:22+00:00

    問題点ははっきりしました。

    パッチをあてた開発機上でActiveXボタンを新規作成すると、前に報告したようにCommandButton21というオブジェクト名で作成されます。ところがこのブックを、パッチの当たっていない別の端末で開くと、ActiveXのオブジェクト名はCommandButton1として開きます。(ボタンのキャプションは21のまま)

    このため、ボタンを押下しても、存在しないオブジェクトのイベントと判断しているようです。

    因みに、一度こうなると、動かない端末上で、ボタンに関する関数をを全部コメントアウトして、テスト関数( msgbox "あああ" 程度)のものを置いても一切呼び出されなくなります。シート自体が無効なオブジェクト、となるようです。

    私のEXCELブックでは、シート関数+ActiveXボタン、標準モジュール、フォームモジュール、クラスモジュールすべて使用しています。試したところ、動かない端末上でも、標準モジュール、フォームモジュール、クラスモジュールは動作しました。やはりシート関数のみがまずいようです。

    とりあえずご提示いただいた件は、以下のようになりました。

    確認結果:

    ①msforms.exdの削除

    ・開発機上で削除

    ・動かない端末上で削除

    ⇒解決せず。やはり動作しない

    ②safeモードで起動

    ・開発機上で削除

    ・動かない端末上で削除

    ⇒解決せず。やはり動作しない

    ③Office修復

    ・開発機上で削除

    ・動かない端末上で削除

    ⇒解決せず。やはり動作しない

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2015-02-18T01:25:46+00:00

    ​にっきー さん、こんにちは。

    マイクロソフト コミュニティをご利用いただき、ありがとうございます。

    マクロブックを開くと 「無効なオブジェクトライブラリです・・」 のエラーメッセージでマクロが動作しなくなり、 CommandButton 挿入時に CommandButton21 の番号で始まる動作になるのですね。

    すでに確認されている 【 こちらのスレッド 】 にも書かれている方法ですが、まだ試されていないのであれば以下の情報の Microsoft Fix it 51029 (MSForms.exd ファイル削除) を実施してみてはいかがでしょう。

    この方法を試してみることで、 Office セキュリティ更新プログラムの影響による動作かという点が確認できると思います。

    "オブジェクトを挿入できません" エラーが MS14-082 セキュリティ更新プログラムをインストールした後に ActiveX カスタム Office ソリューションで表示される

    Fix it 実施でも回避できない場合は、 Office の動作の問題も考えられるかもしれません。

    念のためといった確認になるのですが、以下の方法を試してみて動作に変化があるか確認してみてはいかがでしょう。

    ・ Excel を Office セーフ モードで起動してみる

    起動方法は 【 こちら 】  を参考にしてみてください。

    ・ Office 修復を試してみてどうか

    実施方法は 【 こちら 】 の情報を参考にしてみてください。

    ※ 発生しない端末もあり、 PC によって動作に違いがあるようなので、 Office セーフ モードで変化がない場合は試してみてください。

    試してみた結果について、返信をお待ちしていますね。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2015-02-17T09:57:11+00:00

    因みに、別の方も報告していますが、

    http://answers.microsoft.com/ja-jp/office/forum/office\_2013\_release-excel/excel-activex/40a6dc5b-46e7-4c9a-99b4-506ed2b79c18

    私の端末でも(というか、この動かないブック)でも一旦ActiveXボタンを削除後、新規作成するとボタンのオブジェクトはCommandButton22や21になります。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません