Can anyone tell me how to accomplish this?

I want a Python script to run on opening the MXD which would pull an excel worksheet into a GDB and refresh the map.

I only want this to happen in this specific MXD.


3 Answers 3


If you are going to ArcMap 10.1 you could create a python add-in. The add-in gives you access to an "on open" function that will run code when you open the mxd.

The help here explains how to create one and has a sample that adds a base layer to the mxd when opening.


You could code within the VBA of the mxd and call the python script within the code wrapper below:

Private Function MxDocument_OpenDocument() As Boolean

End Function
  • Good Question. A possible continuation to artwork21's answer can be found Here but I haven't tried it yet - it's a bit of a workaround, but it sounds promising.
    – jonatr
    Commented Jun 9, 2011 at 11:45

In 10.0, you could use VBA as in artwork21's answer, or write a very simple ArcMap add-in using ArcObjects to run a script tool or shell out to arbitrary executables/scripts on startup, as in this answer.

It would probably be worth waiting for 10.1's Python add-ins if you don't want to write an ArcObjects add-in specifically for this.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.