|
▼空牙 さん:
おはようございます。
>いつもお世話になります。
>Excelのプログラムにてひとつどうしても解決できない現象があり、
>質問をあげさせて頂きたいと思います。
>
>【環境】
>エクセルブック(サンプル.xlsとします)の
>シート("シート1"という名前とします)上にボタンを設置しており
>そのボタンが参照するマクロ(mcr出力というマクロとします)が
>"シート1のシートモジュール"内にあるとします。
このボタンはコマンドバー「フォーム」にあるボタンですね?
>
>この時、ボタンのマクロ名は"サンプル.xls!mcr出力"になっていて
>ボタンを押せばmcr出力が走る状況です。
シートモジュールにあるのに"サンプル.xls!mcr出力"となっているのですか???
>
>【動作】
>↓プログラム内で処理しています。
>シート1を新規ブック(コピー.xlsとします)にコピーしてセーブします。
>
>【現象】
>新規に作成されたブックのシート1のボタンのマクロ名が
>"コピー.xls!mcr出力"となってほしいのに
>"サンプル.xls!mcr出力"となったままで
>ボタンを押すとサンプル.xlsを起動してサンプル.xlsのmcr出力を実行します。
>
>ボタンのonActionプロパティに"コピー.xls!mcr出力"とセットして
>セーブをしても"サンプル.xls!mcr出力"に戻ってしまいます。
>
>この現象を回避する方法をご存知の方がいらっしゃいましたら
>ご教授お願い致します。
簡単な方法は、このコマンドボタンをコマンドバー「フォーム」のボタンから
「コントロールツールボックス」のボタンに代えると名前のことを
気にしなくてすみますよ!!
例
新規ブックのSheet1に「コントロールツールボックス」のコマンドボタン(Commandbutton1)を配置します。
Sheet1のモジュールに
'========================================================
Private Sub CommandButton1_Click()
Me.Copy
End Sub
「コントロールツールボックス」の
デザインモードを終了させます(三角定規のアイコンをクリック)。
これでボタンクリックで新規作成されたシートにあるプロシジャーが実行されます。
試してみてください。
|
|