[[20251009122319]] 『元のシートにあるボタンを新しいブックで実行でき』(はいぽ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) |

| 全文検索 | 過去ログ ]

 

『元のシートにあるボタンを新しいブックで実行できるようにするには』(はいぽ)

シート移動後の新しいブックで誰もがマクロを使えるようにするにはどうしたら良いでしょうか。
元のブック標準モジュールにシートを移動させるコードを書いています。移動させるシートにはシートモジュールにコードを書き、フォームコントロールボタンでマクロ登録しています。標準モジュールのマクロ実行し、新しいブックにシートが移動した後、ボタンには元ブックのマクロ名で登録されているためマクロが実行できません。マクロを全く知らない人でもボタンを押すとマクロが実行できるようになる方法はないでしょうか。

< 使用 Excel:Excel2010、使用 OS:Windows10 >


 よくわかってないけど、マクロ登録時のマクロの保存先だっけか?は、作業中のブックにしとけば大丈夫なのでは?
(不明) 2025/10/09(木) 14:41:22

 ああ、
 >新しいブックにシートが移動した後
 ???
 なら、新しいブックにマクロないのでは・・・
 マクロも書いて、再登録すれば・・・

(不明) 2025/10/09(木) 14:48:18


 既にありました回答でもよいと思いますが、別の考え方もあると思います。

 | 移動させるシートにはシートモジュールにコードを書き、
 | フォームコントロールボタンでマクロ登録しています。
 ということなら、ActiveXコントロールを利用すればどうですか?

 シートコピーすれば、
 ・マクロも、
 ・ActiveXコマンドボタン と マクロとの関係も、
 そのままコピーされるので、修正作業は不要かもしれませんね。

(xyz) 2025/10/09(木) 15:14:53


 シートモジュールにマクロを書きます。

 コピーしたあと、
 ActiveSheet.Shapes("ボタンの名前").OnAction = ActiveSheet.CodeName & "." & "マクロの名前"
 します
(´・ω・`) 2025/10/09(木) 17:16:05

 そもそもですが

 マスターブックとしてxlsmファイルを作成
 →マスターブックに各シートの原本を保存
 →シート移動後はxlsxとして保存
 →あくまでxlsxは編集しない前提で、xlsmの方編集やマクロでの処理を行う

 といった方針の方が、運用面では楽かと思います。

 マスターブックで管理すれば
 クエリでのデータ取得、コード内容の変更、シート原本の修正 etc
 が格段に楽になりませんか?

(Asa) 2025/10/09(木) 18:51:53


今までの運用方法が一覧シートから対象分のみのリストシートを作り、後日必要な情報を入手後、そのリストの記録用紙を3つに分けてシートを作成していました。運用方法は極力変えずマクロを作成したかったので、シート移動後もマクロを使いたかったです。シートモジュールに書いたコードは新ブックにシート移動後コードも一緒に移動してくれましたがボタンの登録マクロ名が元ブックになるのでつまづいていました。xyz様のActiveXコマンドボタンで思ったようにできました。アドバイスしていただいた皆様ありがとうございました。
(はいぽ) 2025/10/10(金) 15:54:06

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.