Excel でシートを異なるブックへコピーするとコピー先のブック上のオブジェクトに登録されたマクロ名が変更されマクロが実行できない

現象
Microsoft Excel 2010 または 2007 Microsoft Office system Service Pack 2 (SP2) を適用した、Microsoft Office Excel 2007 で、マクロが登録されたオブジェクトを含むシートを異なるブックへコピーすると、コピー先ブック上のオブジェクトに登録されたマクロ名が、<コピー先ブック名>!<マクロ名> に変更され、マクロが実行できません。この現象が発生するとき、以下のエラーメッセージが表示されます。
マクロ '<コピー先ブック名>!<マクロ名>' を実行できません。このブックでマクロを使用できないか、またはすべてのマクロが無効になっている可能性があります。
  • この現象は、Excel 2007 Service Pack 2 (SP2) 以降のバージョン (EXCEL.EXE のバージョンが 12.0.6425.1000 以上) で発生します。
  • 以前のバージョンでは、コピー先ブック上のオブジェクトに登録されるマクロ名は、<コピー元ブック名>!<マクロ名> です。
  • "オブジェクト" とは、フォーム コントロール、オートシェイプ、テキスト ボックス、グラフなどを指します。


解決方法
この問題を解決するには、以下のサポート技術情報に記載されている修正プログラム パッケージをインストールし、レジストリを設定してください。



回避策
修正プログラム パッケージをインストールしないで問題を回避するには、以下のいずれかの方法を実行してください。

方法 1 : 手動でマクロ名を変更する

以下の手順により、変更されたマクロ名を元に戻します。
  1. オブジェクト上で右クリックして、[マクロの登録] を選択します。
  2. マクロ名を以下のように変更します。
    <コピー元ブック名>!<マクロ名>
  3. [OK] をクリックします。

方法 2 : Shape.OnAction プロパティを使用してマクロ名を変更する

シートを異なるブックへコピーした後、以下のコードを実行することによって、変更されたマクロ名を元に戻します。
ActiveSheet.Shapes("正方形長方形 1").OnAction = "<コピー元ブック名>!<マクロ名>"
状況
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
詳細

問題の再現手順

  1. Excel 2007 を起動します。
  2. Sheet1 に [挿入] タブより図形を挿入します。
  3. 手順 2 で挿入した図形上で右クリックをし、[マクロの登録] を選択します。
  4. [マクロの登録] ダイアログで [新規作成] をクリックします。
  5. Visual Basic Editor にて、図形をクリックしたときに行う処理を記述します。たとえば以下のように記述します。
     Sub 正方形長方形1_Click()     MsgBox "Hello!" End Sub
  6. 図形をクリックして、マクロが実行できることを確認します。
  7. Sheet1 を異なるブックへコピーします。たとえば "Book1" へコピーします。
  8. コピー先ブック上の図形をクリックしてマクロを実行します。

結果

以下のエラー メッセージが表示されてマクロが実行できません。
マクロ 'Book1!正方形長方形1_Click' を実行できません。このブックでマクロを使用できないか、またはすべてのマクロが無効になっている可能性があります。
関連情報
関連情報を参照するには、以下のサポート技術情報をクリックしてください。
974238 Office 2007 SP2 を適用後の Excel 2007 でシートを異なるブックへ移動すると移動元のブック上のオブジェクトに登録されたマクロ名が変更されマクロが実行できない
プロパティ

文書番号:974239 - 最終更新日: 10/18/2016 06:56:00 - リビジョン: 5.0

Microsoft Office Excel 2007, Microsoft Excel 2010

  • kbexpertiseinter kbtshoot kbharmony KB974239
フィードバック