22

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.

PolyGeo
  • 65,136
  • 29
  • 109
  • 338
gg7aph
  • 321
  • 2
  • 3

3 Answers3

14

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.

TurboGus
  • 932
  • 8
  • 15
5

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
artwork21
  • 35,114
  • 8
  • 66
  • 134
  • 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 Jun 09 '11 at 11:45
3

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.

blah238
  • 35,793
  • 7
  • 94
  • 195