Hmmmm. You need to work on your descriptive text more.

VBA code will execute whenever, and where ever, it is in scope.

You still did not explain what you mean by "template". A template is a Word file with a .DOT extension, rather than a .DOC extension.

ANY Word file (either .DOT or .DOC) can execute VBA code.

Label. Do you mean an ActiveX label control? If so, you have to state so. We can not read minds.

"Just in the white part of the document". Hmmmm, does that mean you have blue parts? Red parts? Green parts? What the heck does that mean?

"Dragged it over and put it there". Oh....yes, now that I am looking over your shoulder...could you shuffle over a little more so I can see the screen better? Ah, thanks...yes, now I can see where "there" is.

You put Document_Open in a label code? Huh? Document_Open IS a procedure. You do not put an event procedure into something.

Document_Open is a procedure in the ThisDocument module. It has nothing to do with a label. Putting text into a label is usually done in the ThisDocument module.

If you want to change the text in a label (assuming you ARE talking about an ActiveX label control), write a procedure in the ThisDocument, and run it.
[vba]Private Sub Document_Open()
Label1.Caption = "This is the opening text (Caption) " & _
"of Label1."
End Sub


Sub ChangeLabelText()
Label1.Caption = "This is CHANGED text (Caption) " & _
"of Label1."
End Sub[/vba]When the document opens, the Document_Open event fires, and the label caption is written.

The procedure ChangeLabelText can be fired by any call to it.

I will reiterate though, a template (.DOT) will NOT fire Document_Open unless it IS opened. Properly done, a template will NOT be opened except by the person putting it together. Used properly, when the template is cloned into a new document, you should use Document_New to execute initial code.