Home Word template: command button runs wrong macro
Reply: 0

Word template: command button runs wrong macro

user47795
1#
user47795 Published in September 19, 2018, 9:09 am

(Office 365 ProPlus version 1701 build 7766.2099, running on Windows 7)

(Edited post, original is lower.) ActiveX command buttons that occur in a template in a different order than they were created can call the wrong macro, when a file is created from that template.

Exact steps to reproduce: Create a new document. Save it as a .dotm file. Press enter a couple times to create space at the top of the document. Create an ActiveX Command Button. Double-click it to create procedure, put in MsgBox to ID it. Create a second button ABOVE the first, and its procedure. Now, when the buttons are clicked in the template, they work fine (top one reports 2, bottom reports 1), but when clicked in a file created from the template (double-click file in Explorer window), they are swapped (top reports 1, bottom reports 2).

(Original) A very long time ago (earlier version of Word), I created a Word template (.dotm) with buttons that run macros. It used to work fine. I've recently discovered that the buttons now call the wrong macros. If I double-click the template file (creating a new file based on the template), the first button calls the third button's macro and vice-versa. (Middle button, "Fill out forms", works fine.) If I right-click the template and choose Open (open the template itself, not create a new file), the buttons work as designed.

I've boiled the template down to just the 3 buttons and their macros (see photos), and am still seeing the same issue. Clicking "Reset fields", which should call ResetFieldsButton_Click(), instead runs MyPrintButton_Click(). (I get the "Printing..." popup.) What's going on?

share|improve this question
  • The same document of course - I'm obviously tired. I'd try recreating the buttons in the template (copy of the template) with new names, see if that works. If not, try recreating the template. If that still doesn't work I'd try MacroButton fields instead of ActiveX controls. – Cindy Meister Feb 13 at 20:08
  • I verified the exact same behavior in a new template created for the purpose - create 3 ActiveX buttons, create their macros, then cut the third one and paste it into the document before the first one. On a related note, I tried removing the original 3 buttons and replacing them with 3 new ones, carefully keeping them in the correct order, and setting up new subs for them to call. As before, everything works fine when clicking them in the template - but now a new document doesn't react at all when they're clicked. – whairst Feb 13 at 20:23
  • Ugh. Sounds like a problem in the new version. I'll test it tomorrow and see if I can replicate it – Cindy Meister Feb 13 at 20:25
  • My test: New file; insert some text; insert three ActiveX command buttons; double-click each button in turn and add a MsgBox line of code; turn off Design Mode; click each button. Worked fine. Save As *.dotm and close. Create a new doc from the template, test the buttons. They work correctly. Is it possible you copy/pasted the CommandButton controls instead of insert new ones each time? Version 1708 by the way, updated semi-annually. – Cindy Meister Feb 14 at 8:35
  • Cindy, to get mine to fail, I selected and "cut" the third button, then pasted it above the first one in the document - so they were no longer in the order that they were created. I suspect the sequence they're in the document is what makes the difference - despite having the correct names. – whairst Feb 14 at 12:19

active oldest votes

Your Answer

StackExchange.ifUsing("editor", function () { StackExchange.using("externalEditor", function () { StackExchange.using("snippets", function () { StackExchange.snippets.init(); }); }); }, "code-snippets"); StackExchange.ready(function() { var channelOptions = { tags: "".split(" "), id: "1" }; initTagRenderer("".split(" "), "".split(" "), channelOptions); StackExchange.using("externalEditor", function() { // Have to fire editor after snippets, if snippets enabled if (StackExchange.settings.snippets.snippetsEnabled) { StackExchange.using("snippets", function() { createEditor(); }); } else { createEditor(); } }); function createEditor() { StackExchange.prepareEditor({ heartbeatType: 'answer', convertImagesToLinks: true, noModals: false, showLowRepImageUploadWarning: true, reputationToPostImages: 10, bindNavPrevention: true, postfix: "", onDemand: true, discardSelector: ".discard-answer" ,immediatelyShowMarkdownHelp:true }); } });
 
StackExchange.ready( function () { StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f48771524%2fword-template-command-button-runs-wrong-macro%23new-answer', 'question_page'); } );

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged vba templates ms-word word-vba or ask your own question.

StackExchange.ready(function(){$.get('/posts/48771524/ivc/c4f0');});
StackExchange.ready(function () { StackExchange.responsiveness.addSwitcher(); }) (function(i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function() { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m); })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga'); StackExchange.ready(function () { StackExchange.ga.init({ sendTitles: true, tracker: window.ga, trackingCodes: [ 'UA-108242619-1' ] }); StackExchange.ga.setDimension('dimension2', '|vba|templates|ms-word|word-vba|'); StackExchange.ga.setDimension('dimension3', 'Questions/Show'); StackExchange.ga.trackPageView(); }); /**/ var _qevents = _qevents || [], _comscore = _comscore || []; (function() { var ssl = 'https:' == document.location.protocol, s = document.getElementsByTagName('script')[0], qc = document.createElement('script'); qc.async = true; qc.src = (ssl ? 'https://secure' : 'http://edge') + '.quantserve.com/quant.js'; s.parentNode.insertBefore(qc, s); _qevents.push({ qacct: "p-c1rF4kxgLUzNc" }); /**/ var sc = document.createElement('script'); sc.async = true; sc.src = (ssl ? 'https://sb' : 'http://b') + '.scorecardresearch.com/beacon.js'; s.parentNode.insertBefore(sc, s); _comscore.push({ c1: "2", c2: "17440561" }); })();
You need to login account before you can post.

About| Privacy statement| Terms of Service| Advertising| Contact us| Help| Sitemap|
Processed in 0.329036 second(s) , Gzip On .

© 2016 Powered by mzan.com design MATCHINFO