EXCEL2010を使用して、ユーザーフォームを含むマクロを作成しました。それをマクロ有効ブック(以降xlsm)として保存した上で、グループ内で共有する為にマクロ有効テンプレート(以降xltm)で保存しました。またユーザーリボンとしてもこのマクロを登録しました。xlsmはもう不要と考え、別のフォルダーに移動させました。
次に、同一PCでマクロを使いたいEXCELデータ(.xlsx)を読み込んだ上で、登録したリボンを叩いたところ、該当xlsmがないというメッセージが出てマクロが実行できません。該当xlsmを移動前の場所に戻すと、リボン(xltm)が使えるようになります。
これでは、マクロを共有するのに大変不便です。xltmファイルにはマクロがすでに書いてあるので、xlsmはもう不要なはず。
どうすればxltmだけで実行できるのでしょうか?
xltmを利用する上でxlsmが必要なのですか?またはxlsm内にxlsmのパスを書いておく必要があるのですか?
お分かりになる方がいらっしゃったら回答をいただければ幸いです。よろしくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんにちは。
先ほど、テンプレートで実際に試してみました。
こちらは、何の問題も出てきませんでしたが、ローカル(オブジェクト)・モジュールと標準モジュールという違いは分かりますか?
マクロの中に、その[xlsm]のマクロを呼び出すように作られているために、
>該当xlsmを移動前の場所に戻すと、リボン(xltm)が使えるようになります。
このようなことになります。ローカル(シート、UserForm)の中で作られたものは、問題なく、新しいシートが生成されます。つまり、テンプレートというのは、原型ですから、それそのものが実行するわけではありません。テンプレートを実体化させて、始めて、シート全体が生きてきます。
しかし、標準モジュールで書いた固有のマクロを呼び出すマクロを書けば、当然、呼び出されるようになってしまいます。それは、新たなオブジェクトとして生成されません。具体的には、フォーム・ボタンなどで書いたものは、元のワークブックを呼び出してしまいます。
だから、そうしたマクロは、アクティブXコントロールに書き換えなくてはなりません。
それが難しいようでしたら、アドインを作って、呼び出さないといけなくなると思います。
質問のタイトルの「EXCEL2010でxltmにxlsmは必要? 」は、必要ないようなオブジェクトを設定すれば、呼び出しは不要になります。
WindFaller様、
確認までしていただきご丁寧にありがとうございました。
標準モジュールに書いてはいけないということですか・・・またローカルモジュールと標準モジュールの違いも理解していませんでした。
(1)ローカルモジュールとはProject Explorer内のMicosoft Excel Objects であると理解しました。
(2)ということは、マクロを生成し自動記録させるケースでも、その場所は自動的に標準モジュールになるので、そのようにして書いたマクロはすべて配布する際には"*.xlsm" も同梱しておき、受け取ったユーザー側で"*.xlsm"を使って"*.xltm"を登録する必要があるのですね。
(3)こういう場合、標準モジュールに書かれたマクロをMicosoft Excel Objectsにある、例えばSheet1にコードを移せば、配布しても今回のような問題は起きないということですね?
私は"*.xltm"内にユーザーフォーム、標準モジュールすべてが書き込まれるものと理解していました。
一度試してみようと思います。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/01/27 13:15
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 13:29
- PowerPoint(パワーポイント) エクセルのマクロについて教えてください。 1 2022/03/25 17:03
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/01/26 12:00
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2023/05/23 16:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/03/12 10:10
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Access(アクセス) ExcelのVBAコードについて教えてください。 4 2023/01/20 09:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
今日の日付の範囲を指定して印...
-
エクセルのマクロボタンが編集...
-
Application.Runエラー(1004)
-
別シートのマクロを実行する方法
-
Access終了時にマクロまたはVBA...
-
access2010 コマンドまたはアク...
-
Workbook_Openを起動時以外に呼...
-
エクセルの右クリックにオートS...
-
エクセルのマクロ
-
マクロとモジュールの違いを教...
-
「Access」のフォームを...
-
エクセルVBAで数式バー再表示後...
-
アクセスでauto_openは使えない?
-
別シートのトグルボタンを指定...
-
シート保護を掛けたまま並べ替...
-
マクロが登録できません
-
マクロ 戻るボタンを押したらシ...
-
ExcelにおけるDDEデータのイベ...
-
エクセルVBAで、ボタンの文字を...
-
エクセル VBA SendKeys ループ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのマクロボタンが編集...
-
別シートのマクロを実行する方法
-
Access終了時にマクロまたはVBA...
-
Application.Runエラー(1004)
-
シート保護を掛けたまま並べ替...
-
エクセルVBAで、ボタンの文字を...
-
access2010 コマンドまたはアク...
-
マクロ 戻るボタンを押したらシ...
-
InputBox内の表示について
-
特定のシートだけ印刷はマクロ...
-
ExcelのVBAでDisplayalertsで警...
-
エクセル VBA SendKeys ループ...
-
マクロが登録できません
-
今日の日付の範囲を指定して印...
-
AccessでExcelファイルを印刷
-
プロシージャが大きすぎます!
-
エクセルのマクロ
-
Workbook_Openを起動時以外に呼...
-
アクセス:検索フォームボタンに...
-
特定マクロが実行されたか確認...
おすすめ情報