Hi:
By Microsoft design, SpreadsheetML XML -- which is the type of markup created by TAGSETS.EXCELXP does NOT support the inclusion of any type of graphics. If you try to create graphic output using TAGSETS.EXCELXP as the ODS destination, you should see this note in the log:
[pre]
Excel XML does not support output from Proc:Gchart
Output will not be created.
[/pre]
That means you will NOT be able to use TAGSETS.EXCELXP to create workbooks which contain graphic output. So, if you want a tagset template to use as the basis for your new tagset template, you might start with TAGSETS.TABLEEDITOR, which, I believe is an HTML-based tagset with VBScript embedded in the HTML.
As for your opening question about event timing.... generally, the ODS process or SAS procedure determines which event is called and when it is called. You can deal with what you want to do in a few different ways:
There are some examples here. Specifically, Example 4 shows how to trigger events -- so, if you know that the DOC event will always be first, you could trigger an event from the DOC event.
http://support.sas.com/documentation/cdl/en/odsug/61723/HTML/default/a002286844.htm
Or, you could create an event that would get triggered when you pass an option to your tagset:
[pre]
ods tagsets.wombat file='something.xxx';
*** proc1;
ods tagsets.wombat options(dosomething='yes');
*** proc 2;
ods tagsets.wombat options(diffopt='xyz');
ods tagsets.wombat close;
[/pre]
Also, as described in the documentation, here:
http://support.sas.com/documentation/cdl/en/odsug/61723/HTML/default/a002217090.htm#a003045529
...you can specify EVENT= in the ODS MARKUP statement, which would give you the control to trigger a specific event.
cynthia