現象

2007 Microsoft Office system Service Pack 2 (SP2) を適用した、Microsoft Office Excel 2007 で、シートを異なるブックへ移動すると、移動元のブック上のオブジェクトに登録されたマクロ名が、<移動先ブック名>!<マクロ名> に変更され、マクロが実行できません。この現象が発生するとき、以下のエラーメッセージが表示されます。

マクロ '<移動先ブック名>!<マクロ名>' を実行できません。このブックでマクロを使用できないか、またはすべてのマクロが無効になっている可能性があります。


  • この現象は、Excel 2007 Service Pack 2 (SP2) 以降のバージョン (EXCEL.EXE のバージョンが 12.0.6425.1000 以上) で発生します。

  • 以前のバージョンでは、シートの移動操作によって、移動元ブック上のオブジェクトに登録されたマクロの参照先が変化することはありません。

  • "オブジェクト" とは、フォーム コントロール、オートシェイプ、テキスト ボックス、グラフなどを指します。

解決方法

この問題を解決するには、以下の修正プログラム パッケージをインストールしてください。


修正プログラム パッケージをダウンロードするには、次のサポート技術情報をクリックしてください。

974992
Office Excel 2007 修正プログラム パッケージ (2009年10月27日) について

回避策

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

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

以下の手順により、変更されたマクロ名を元に戻します。

  1. オブジェクト上で右クリックして、[マクロの登録] を選択します。

  2. マクロ名を以下のように変更します。
    <移動元ブック名>!<マクロ名>

  3. [OK] をクリックします。

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

シートを異なるブックへ移動後、以下のコードを実行することによって、変更されたマクロ名を元に戻します。

ActiveSheet.Shapes("正方形長方形 1").OnAction = "<移動元ブック名>!<マクロ名>"

方法 3 : シートのコピーと削除を行う

シートをコピーした後、移動元のシートを削除します。

  1. 移動したいシートを、異なるブックへコピーします。

  2. コピー元のシートを削除します。

状況

マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。

詳細

問題の再現手順

  1. Excel 2007 を起動します。

  2. Sheet1 に [挿入] タブより図形を挿入します。

  3. 手順 2 で挿入した図形上で右クリックをし、[マクロの登録] を選択します。

  4. [マクロの登録] ダイアログで [新規作成] をクリックします。

  5. Visual Basic Editor にて、図形をクリックしたときに行う処理を記述します。たとえば以下のように記述します。

     Sub 正方形長方形1_Click()
      MsgBox "Hello!"
     End Sub
  6. 図形をクリックして、マクロが実行できることを確認します。

  7. Sheet2 を異なるブックへ移動します。たとえば "Book1" へ移動します。

  8. 移動元ブック上の図形をクリックしてマクロを実行します。

結果

以下のエラー メッセージが表示されてマクロが実行できません。

マクロ 'Book1!正方形長方形1_Click' を実行できません。このブックでマクロを使用できないか、またはすべてのマクロが無効になっている可能性があります。

関連情報

関連情報を参照するには、以下のサポート技術情報をクリックしてください。

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

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

翻訳品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

フィードバックをお送りいただきありがとうございます!

×