Word 2010 - can I remove VBA code from a document to allow it to be saved as docx without warning

I have a small piece of VBA code stored in a template that runs at the document_new event.
After the document is created the user will get a warning when saving as a docx (the default AND REQUIRED setting) - because of the VBA code.

So is there a way to run the piece of code then automatically remove the VBA section from this new document so it can be saved as a plain docx?
LVL 45
AndyAinscowFreelance programmer / ConsultantAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Phillip BurtonDirector, Practice Manager and Computing ConsultantCommented:
Application.DisplayAlerts = wdAlertsNone
'~~> Your Save Code
Application.DisplayAlerts = wdAlertsAll
0
AndyAinscowFreelance programmer / ConsultantAuthor Commented:
I think I understand what you are getting at.
I don't have any code run for the saving, it is the user performing the save by clicking save on the ribbon.  So I could turn alerts off at the end of the VBA code that runs on new doc, but how would I turn the alerts on again after the document is saved - the VBA section should not exist any more.
0
Phillip BurtonDirector, Practice Manager and Computing ConsultantCommented:
If you have some code in a Normal template in the document_new event, it shouldn't be copied into the new document.

If there are macros in the new document, then I don't think you can automatically disable the warning box - it's there for your protection.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

AndyAinscowFreelance programmer / ConsultantAuthor Commented:
This is in a custom template (not normal.dot) but another template used as the basis for the new document.
Private Sub Document_New()
    ActiveDocument.BuiltInDocumentProperties("Author") = GetLoginName()
End Sub

Function GetLoginName() As String
    'code here
End Function

Open in new window


When I create a new document then try to save it I get the following:
warningThat complains that a VBA code section still exists in the document.  Basically, that is what I want to get rid of so the end user can save as a docx without code.  The VBA section does exist, I can go to it via the developer tools:VBA ribbon options.
0
Phillip BurtonDirector, Practice Manager and Computing ConsultantCommented:
I have created a custom template based on the above code, created a document, and saved it as a docx. I have had no problems with saving it. The macros did not exist in the new document.

This is what is in my Template - Project - Microsoft Word Objects - ThisDocument:

Private Sub Document_New()
    ActiveDocument.BuiltInDocumentProperties("Author") = GetLoginName()
End Sub

Function GetLoginName() As String
    GetLoginName = "Hithere"
End Function

Open in new window


I would upload the file for you to test, but I am unable to upload dotm files.

Incidentally, thank you. I am developing a website based on metadata, and based on your previous question I am expanding it with a few additional pages - here's an example: http://www.filecats.co.uk/metadata-extended-document-properties/microsoft-office/accessing-within-ms-office-vba/
0
GrahamSkanRetiredCommented:
I am puzzled by this question. How does the code get into the document?

Code in a template is not automatically transferred to a new document if the document is created by selecting File/New and then selecting the template.
0
GrahamSkanRetiredCommented:
You might be able to upload the template if you change the extension to, say, .dot.
0
AndyAinscowFreelance programmer / ConsultantAuthor Commented:
Aaaaaaagrh - I've just seen the 'template' isn't, for some reason word saved it as docm not dotm.
I'll get back later after really generating a template.
AndreaTest.txt
0
AndyAinscowFreelance programmer / ConsultantAuthor Commented:
My fault.  That's a couple of hours time wasted.

I'd either copied the wrong document to the templates folder or selected the wrong file type to save as (docm rather than dotm) when generating the template.
Everything works, the VBA is not copied from the template to the new document.


ps. Ignore the attachment in the previous post, it is in reality a docm not a dotm extension - which is when I noticed something wasn't correct with the file extensions.
0
Phillip BurtonDirector, Practice Manager and Computing ConsultantCommented:
Yay! Glad it works.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Word

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.