One way is to take the macro out of your Autoexec Startup for the document. Usually the error doesn't happen until a macro is run IIRC. Of course my experience is only with Office 2000 and previous versions, so I don't know how newer versions handle that.
One quick way is to save the document as RTF and then load it and save it as a Doc file. Just hope that you don't lose any important formatting. Save it as a different name and see if it strips out the macro, I am sure it will. I am not sure how it will handle tables, bookmarks, and other Word features. Another way may be to use OpenOffice.Org as I think it does strip out macros as it doesn't use them, but don't quote me on that.
Even if you have a self destructing macro, the user will still get the "This document has a macro" error. They will get it only once and after they run the macro it should clean itself off.
What you want is almost the reverse of a Macro Virus, you have a Macro that kills itself.
I found this self-modifying code:
[link|http://chrisrae.com/vba/routines/selfmodify.html|http://chrisrae.com/...s/selfmodify.html]
I am sure that you can use it in reverse to delete lines. Look up the "Application.VBE.ActiveVBProject.VBComponents" object.
Ah yes, I think I found it:
[link|http://www.excel-center.com/mailing/067699h.htm|http://www.excel-cen...iling/067699h.htm]
'Place the code below into the standard module
Sub ModuleClear()
MsgBox "I am not there!"
With Application.VBE.ActiveVBProject
.vbComponents.Remove .vbComponents("MyModule")
End With
End Sub
Just put in the name of your module in the "MyModule" place and it should work. Maybe remove the Msgbox as it doesn't really serve a purpose.
I know the example is for Excel, but I think the VBE object also exists in Word.