• 締切済み

マクロを他のブック上で実行できなくなった

あるマクロを作成して、シート上の図形に登録します。 (たとえば、Msgboxなど簡単なマクロです。図形を押すとメッセージボックスが表示されますよね) そのシートを新規ブックにコピーして、図形を押してもマクロが実行できません。 図形に登録されたマクロを調べると、新規ブックのマクロとして設定されてしまってます。 これはどこかの設定を変更すると治るのでしょうか? (最近まで出来てたのに突然出来なくってしまったのです) 環境はExcel2007。OSはWindows7です。 よろしくお願いします。

みんなの回答

回答No.2

そのマクロ (というか VBA のプログラム) がどこに書かれているかによると思います。 例えば。。。 新規 Excel ブックの Sheet1 に図形を作成し、図形を右クリックして [マクロの登録] をクリック。 「マクロの登録」ダイアログにて [新規作成] をクリックすると VB Editor が開き、プログラムを書ける状態になりますが、おそらくは「標準モジュール」の "Module1" って所に書くようになっていると思います。 この状態だと Sheet1 上の図形をクリックすると、Module1 に書かれたプログラムを呼び出すように設定されます。 この Sheet1 を別のブックにコピーしても Module1 まではコピーされないため質問文にあるような現象になります。 先に VB Editor で Sheet1 のコードモジュールにプログラムを書き、Sheet1 上の図形からこのプログラムをマクロ登録した場合、Sheet1 を別のブックに持って行ってもプログラムコードも一緒に移動します。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.1

>そのシートを新規ブックにコピーして、図形を押してもマクロが実行できません。 「シートを」移動・コピーすると,そのようになります。 設定の問題ではなく,エクセルでは最初からそういう具合に動作します。変更する方法はありません。 ○マクロを登録した図形をコピーする ○マクロを登録した図形が載っている「セル範囲」をコピーする と,元のブックのマクロが登録されたままになり,実行も出来ます。 ●お薦めはしませんが,図形に登録するマクロをシート名タブを右クリックしてコードの表示を選んで現れたシートに記録しておくと,シートを移動・コピーしても「そのシートにコードが憑いている」ので,マクロを実行できます。

関連するQ&A