<?xml version="1.0" encoding="utf-8"?> <bpr:release xmlns:bpr="http://www.blueprism.co.uk/product/release"> <bpr:name>Teneo_Connector</bpr:name> <bpr:release-notes /> <bpr:created>2021-03-17 18:20:36Z</bpr:created> <bpr:package-id>-1</bpr:package-id> <bpr:package-name><Adhoc Package></bpr:package-name> <bpr:user-created-by>admin</bpr:user-created-by> <bpr:contents count="7"> <process id="be13ff1a-496d-48cb-b0ee-f3823b9da62d" name="Recieve Teneo Data" published="true" xmlns="http://www.blueprism.co.uk/product/process"><process name="Recieve Teneo Data" version="1.0" bpversion="6.10.0.30674" narrative="" byrefcollection="true"><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view><preconditions /><endpoint narrative="" /><stage stageid="32966aa7-311e-4ef3-8417-d84a9b920765" name="Start" type="Start"><display x="15" y="-105" /><inputs><input type="text" name="Sheet Name" stage="Sheet Name" /><input type="text" name="File Path" stage="File Path" /></inputs><onsuccess>f364b882-8d57-4631-8fb4-9e0fec3a723a</onsuccess></stage><stage stageid="cc7f293c-3a49-49db-b5d8-6dc135b71964" name="End" type="End"><display x="15" y="90" /><outputs><output type="text" name="Process Results JSON" stage="JSON" /></outputs></stage><stage stageid="fb23a238-09ca-41c0-80b3-d4dd697390ae" name="Stage1" type="ProcessInfo"><display x="-195" y="-105" w="150" h="90" /></stage><stage stageid="423e22e3-ed51-413e-b1a4-e6d4752dc9f5" name="Sheet Name" type="Data"><display x="90" y="-105" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="3d1c8f93-8c85-4a0b-865e-9c0e08a85cdd" name="File Path" type="Data"><display x="165" y="-105" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="f364b882-8d57-4631-8fb4-9e0fec3a723a" name="Run Test Phrases" type="Process"><loginhibit onsuccess="true" /><display x="15" y="-30" /><inputs><input type="text" name="Excel File Path" friendlyname="Excel File Path" expr="[File Path]" /><input type="text" name="Excel Sheet Name" friendlyname="Excel Sheet Name" expr="[Sheet Name]" /></inputs><outputs><output type="collection" name="Process Data" friendlyname="Process Data" stage="Process Data" /></outputs><onsuccess>30182239-cc54-4a42-8e3a-498da1a805d4</onsuccess><processid>2b4664ab-3928-4464-a78c-bfb869c59af9</processid></stage><stage stageid="ad87b194-1683-4f66-bb5f-7037b5d80773" name="Process Data" type="Collection"><display x="90" y="-15" /><datatype>collection</datatype><private /><alwaysinit /><collectioninfo><field name="Conversation" type="text" /><field name="Phrase" type="text" /><field name="Expected" type="text" /><field name="Matches" type="flag" /><field name="Actual" type="text" /><field name="Session" type="text" /></collectioninfo></stage><stage stageid="30182239-cc54-4a42-8e3a-498da1a805d4" name="Collection to JSON" type="Action"><loginhibit onsuccess="true" /><display x="15" y="30" /><inputs><input type="collection" name="Data" friendlyname="Data" expr="[Process Data]" /></inputs><outputs><output type="text" name="JSON" friendlyname="JSON" stage="JSON" /></outputs><onsuccess>cc7f293c-3a49-49db-b5d8-6dc135b71964</onsuccess><resource object="Utility - JSON" action="Collection to JSON" /></stage><stage stageid="2439c424-a041-4f6e-af97-1c87f8a5e7e3" name="JSON" type="Data"><display x="165" y="-15" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage></process></process> <process id="2b4664ab-3928-4464-a78c-bfb869c59af9" name="Run Test Phrases" published="true" xmlns="http://www.blueprism.co.uk/product/process"><process name="Run Test Phrases" version="1.0" bpversion="6.10.0.30674" narrative="
" byrefcollection="true"><view><camerax>-238</camerax><cameray>-117</cameray><zoom version="2">1.25</zoom></view><preconditions /><endpoint narrative="" /><subsheet subsheetid="927b3cfb-80a2-45b9-8af5-e0d7a1e67f32" type="Normal" published="False"><name>Process Data</name><view><camerax>-60</camerax><cameray>72</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="d70eaff5-a91c-4688-b4a8-a20414379a2b" type="Normal" published="False"><name>Load Data</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><stage stageid="631f0c3f-f132-4256-b67c-b1c66f01ef82" name="Start" type="Start"><display x="0" y="-210" /><inputs><input type="text" name="Excel File Path" stage="Excel File Path" /><input type="text" name="Excel Sheet Name" stage="Excel Sheet Name" /></inputs><onsuccess>2731367d-79cf-4097-b4ff-05b1db81c108</onsuccess></stage><stage stageid="ec440169-0051-45c6-9d63-2f4b99a6b492" name="Stage1" type="ProcessInfo"><display x="-135" y="-225" w="150" h="90" /></stage><stage stageid="84ab9450-9ce9-4b60-a21d-fa60d66c49ee" name="Load Data" type="SubSheetInfo"><subsheetid>d70eaff5-a91c-4688-b4a8-a20414379a2b</subsheetid><display x="-195" y="-105" w="150" h="90" /></stage><stage stageid="e64bd8ab-fbf6-45f8-a5f4-50b8be081988" name="Start" type="Start"><subsheetid>d70eaff5-a91c-4688-b4a8-a20414379a2b</subsheetid><display x="15" y="-105" /><inputs><input type="text" name="Excel Path" stage="Excel File Path" /><input type="text" name="Sheet Name" stage="Excel Sheet Name" /></inputs><onsuccess>79543a9d-4498-4f2d-a7a8-977a665e5f04</onsuccess></stage><stage stageid="2b420a13-35f6-4cff-bdbb-8755ef24b8b3" name="End" type="End"><subsheetid>d70eaff5-a91c-4688-b4a8-a20414379a2b</subsheetid><display x="15" y="120" /><outputs><output type="collection" name="Excel Data" stage="ExcelData" /></outputs></stage><stage stageid="7eb77da1-b7a7-4c27-9af3-7564dc80cb27" name="Get Phrases Data From Excel" type="Action"><subsheetid>d70eaff5-a91c-4688-b4a8-a20414379a2b</subsheetid><loginhibit onsuccess="true" /><display x="15" y="30" w="150" h="30" /><inputs><input type="number" name="handle" friendlyname="handle" narrative="The integer handle identifying the instance on which the worksheet which should be retrieved resides. The default of zero indicates the currently active instance." expr="[Handle]" /><input type="text" name="Workbook Name" friendlyname="Workbook Name" narrative="The name of the workbook which contains the sheet required. The default empty text indicates the currently active workbook on the specified instance." expr="[Workbook Name]" /><input type="text" name="Worksheet Name" friendlyname="Worksheet Name" narrative="The name of the worksheet within the specified workbook which should be written to a collection. The default empty text indicates the currently active worksheet within the specified workbook." expr="[Excel Sheet Name]" /><input type="text" name="Fetch Data With Method" friendlyname="Fetch Data With Method" narrative="The method used to fetch data from cells in the worksheet. Options include Text, Value, and Value2. The default indicates Value will be used." expr="" /></inputs><outputs><output type="collection" name="Data" friendlyname="Data" narrative="The collection containing the data from the specified worksheet - the column IDs will be gleaned from the first row on the sheet being retrieved." stage="ExcelData" /></outputs><onsuccess>0b10cbe4-c93b-40a2-886f-7617503f53bf</onsuccess><resource object="MS Excel VBO" action="Get Worksheet As Collection" /></stage><stage stageid="499d2e3b-5a67-4ca3-b4ea-aeb15276d8a5" name="ExcelData" type="Collection"><subsheetid>d70eaff5-a91c-4688-b4a8-a20414379a2b</subsheetid><display x="135" y="-15" /><datatype>collection</datatype><private /><alwaysinit /></stage><stage stageid="681a5c53-c3e3-4fc4-874d-64ea1d843c9c" name="Excel File Path" type="Data"><subsheetid>d70eaff5-a91c-4688-b4a8-a20414379a2b</subsheetid><loginhibit onsuccess="true" /><display x="135" y="45" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="b7071588-6bd4-44ed-8665-0c319d25fe81" name="Excel Sheet Name" type="Data"><subsheetid>d70eaff5-a91c-4688-b4a8-a20414379a2b</subsheetid><loginhibit onsuccess="true" /><display x="210" y="-15" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="79543a9d-4498-4f2d-a7a8-977a665e5f04" name="Instanciate Excel" type="Action"><subsheetid>d70eaff5-a91c-4688-b4a8-a20414379a2b</subsheetid><loginhibit onsuccess="true" /><display x="15" y="-60" w="150" h="30" /><inputs><input type="flag" name="Enable Events" friendlyname="Enable Events" narrative="Flag to indicate that events should be enabled / disabled on the attached instance - defaulted to True" expr="" /></inputs><outputs><output type="number" name="handle" friendlyname="handle" narrative="An integer which can be used to identify the created instance in subsequent actions" stage="Handle" /></outputs><onsuccess>75927a95-7647-4da4-bbfb-36c3d68f6150</onsuccess><resource object="MS Excel VBO" action="Create Instance" /></stage><stage stageid="d33c2814-6fc8-4c54-8213-6753d30423ba" name="Handle" type="Data"><subsheetid>d70eaff5-a91c-4688-b4a8-a20414379a2b</subsheetid><display x="135" y="-60" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="75927a95-7647-4da4-bbfb-36c3d68f6150" name="Open Workbook" type="Action"><subsheetid>d70eaff5-a91c-4688-b4a8-a20414379a2b</subsheetid><loginhibit onsuccess="true" /><display x="15" y="-15" w="150" h="30" /><inputs><input type="number" name="handle" friendlyname="handle" narrative="The integer handle identifying the instance on which the required workbook should be opened. The default of zero indicates the currently active instance." expr="[Handle]" /><input type="text" name="File name" friendlyname="File name" narrative="The path and name of the file which should be opened." expr="[Excel File Path]" /></inputs><outputs><output type="text" name="Workbook Name" friendlyname="Workbook Name" narrative="The name used by Excel to identify the workbook - usually this is the file name (without the path)." stage="Workbook Name" /></outputs><onsuccess>7eb77da1-b7a7-4c27-9af3-7564dc80cb27</onsuccess><resource object="MS Excel VBO" action="Open Workbook" /></stage><stage stageid="f14fd585-d80a-4ed6-816d-640336266ae1" name="Workbook Name" type="Data"><subsheetid>d70eaff5-a91c-4688-b4a8-a20414379a2b</subsheetid><display x="225" y="-60" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="1c29c5bd-0c92-4183-86e7-1938489a7860" name="Excel Sheet Name" type="Data"><display x="-225" y="-135" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="99603e57-ea1a-4b33-a822-8f0270070e44" name="Phrase Data" type="Collection"><display x="-90" y="-135" /><datatype>collection</datatype><alwaysinit /><collectioninfo><field name="Matches" type="flag" /><field name="Conversation" type="number" /><field name="Phrase" type="text" /><field name="Expected" type="text" /><field name="Actual" type="text" /><field name="Session" type="text" /></collectioninfo></stage><stage stageid="2731367d-79cf-4097-b4ff-05b1db81c108" name="Load Data" type="SubSheet"><loginhibit onsuccess="true" /><display x="0" y="-150" /><inputs><input type="text" name="Excel Path" friendlyname="Excel Path" expr="[Excel File Path]" /><input type="text" name="Sheet Name" friendlyname="Sheet Name" expr="[Excel Sheet Name]" /></inputs><outputs><output type="collection" name="Excel Data" friendlyname="Excel Data" stage="Phrase Data" /></outputs><onsuccess>c7d43413-c353-4ad0-9039-221409032c43</onsuccess><processid>d70eaff5-a91c-4688-b4a8-a20414379a2b</processid></stage><stage stageid="6bf3e182-3afe-4f3f-b364-0f04ea197278" name="Excel File Path" type="Data"><display x="-165" y="-135" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="0b10cbe4-c93b-40a2-886f-7617503f53bf" name="MS Excel VBO::Close All Instances" type="Action"><subsheetid>d70eaff5-a91c-4688-b4a8-a20414379a2b</subsheetid><loginhibit onsuccess="true" /><display x="15" y="75" w="150" h="30" /><onsuccess>2b420a13-35f6-4cff-bdbb-8755ef24b8b3</onsuccess><resource object="MS Excel VBO" action="Close All Instances" /></stage><stage stageid="28d435e9-dd22-4a8e-ab50-85d9d332d056" name="Process Data" type="SubSheetInfo"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><display x="-270" y="195" w="150" h="90" /></stage><stage stageid="61855bde-eeff-4d2d-aae1-58236cc56713" name="Start" type="Start"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><display x="-165" y="-105" /><onsuccess>4913d3e6-d473-4ab5-9e48-3f717ac4957c</onsuccess></stage><stage stageid="af788ba7-cdfb-4693-9693-1276fa469189" name="End1" type="End"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><loginhibit onsuccess="true" /><display x="15" y="270" /></stage><stage stageid="7a75a3b2-58ce-4509-bf8d-97df985b4466" name="Teneo - Send Message" type="Action"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><loginhibit onsuccess="true" /><display x="15" y="75" /><inputs><input type="text" name="command" friendlyname="command" expr="" /><input type="text" name="userinput" friendlyname="userinput" expr="[message]" /><input type="text" name="sessionID" friendlyname="sessionID" expr="[SessionID]" /></inputs><outputs><output type="text" name="Response Content" friendlyname="Response Content" stage="Response Content" /><output type="text" name="HTTP Status Code" friendlyname="HTTP Status Code" stage="HTTP Status Code" /><output type="collection" name="Response Headers" friendlyname="Response Headers" stage="Response Headers" /><output type="collection" name="Output" friendlyname="Output" stage="Teneo Response Data" /><output type="text" name="SessionID" friendlyname="SessionID" stage="SessionID" /><output type="text" name="Request Data" friendlyname="Request Data" stage="Request Data" /></outputs><onsuccess>49b6b674-4fbb-4ddb-94c1-1fe8fac9382f</onsuccess><resource object="Teneo Fetch" action="GET" /></stage><stage stageid="ec0bcedd-d322-403a-ba15-4eb5f2485a13" name="Teneo Response Data" type="Collection"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><display x="-90" y="90" /><datatype>collection</datatype><private /><alwaysinit /></stage><stage stageid="87a106cf-a0c5-44e7-bbd1-a04b8950de97" name="Response Content" type="Data"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><display x="-210" y="90" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="fe48e896-bd74-4697-b7d7-d0b3b4b9e78c" name="HTTP Status Code" type="Data"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><display x="-330" y="90" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="3eff0836-4389-4901-aae3-d2e968df8603" name="Response Headers" type="Collection"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><display x="-150" y="90" /><datatype>collection</datatype><private /><alwaysinit /></stage><stage stageid="aa498234-0a8b-483b-9142-b644a4639586" name="Request Data" type="Data"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><display x="-270" y="90" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="4913d3e6-d473-4ab5-9e48-3f717ac4957c" name="Check Phrases" type="LoopStart"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><loginhibit onsuccess="true" /><display x="-165" y="-45" /><onsuccess>44621026-527d-4a7c-b5df-d5946d128355</onsuccess><groupid>092a7ed1-0f2c-4789-9f5e-38bc85457904</groupid><looptype>ForEach</looptype><loopdata>Phrase Data</loopdata></stage><stage stageid="7029541c-c79b-42c7-b5d3-7bc92be38355" name="Check Phrases" type="LoopEnd"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><loginhibit onsuccess="true" /><display x="15" y="195" /><onsuccess>af788ba7-cdfb-4693-9693-1276fa469189</onsuccess><groupid>092a7ed1-0f2c-4789-9f5e-38bc85457904</groupid></stage><stage stageid="f37e006a-cf01-4292-bcd0-6c476d52f2e2" name="Is Same Conversation?" type="Decision"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><display x="15" y="-45" /><decision expression="[Current Phrase Conversation Number]=[Last Phrase Conversation Number]" /><ontrue>d9346ff9-55ce-4c88-a80d-e9bdceee709b</ontrue><onfalse>db5ff6f0-0571-48e0-b464-cf72a9a711a3</onfalse></stage><stage stageid="1c45623d-9d25-4201-bae4-68b409b795c8" name="Last Phrase Conversation Number" type="Data"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><loginhibit onsuccess="true" /><display x="-270" y="-30" /><datatype>number</datatype><initialvalue>1</initialvalue><private /><alwaysinit /></stage><stage stageid="70282bfd-2266-4f80-93e9-16c31e4afc2f" name="Current Phrase Conversation Number" type="Data"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><loginhibit onsuccess="true" /><display x="-330" y="-30" /><datatype>number</datatype><initialvalue>1</initialvalue><private /><alwaysinit /></stage><stage stageid="44621026-527d-4a7c-b5df-d5946d128355" name="Set Current Conversation Number" type="Calculation"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><loginhibit onsuccess="true" /><display x="-75" y="-45" /><onsuccess>f37e006a-cf01-4292-bcd0-6c476d52f2e2</onsuccess><calculation expression="[Phrase Data.Conversation]" stage="Current Phrase Conversation Number" /></stage><stage stageid="d9346ff9-55ce-4c88-a80d-e9bdceee709b" name="Set Last Conversation Number" type="Calculation"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><loginhibit onsuccess="true" /><display x="15" y="15" /><onsuccess>7a75a3b2-58ce-4509-bf8d-97df985b4466</onsuccess><calculation expression="[Phrase Data.Conversation]" stage="Last Phrase Conversation Number" /></stage><stage stageid="db5ff6f0-0571-48e0-b464-cf72a9a711a3" name="End Session" type="Action"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><loginhibit onsuccess="true" /><display x="195" y="-45" /><inputs><input type="text" name="sessionID" friendlyname="sessionID" expr="[SessionID]" /></inputs><outputs><output type="text" name="Response Content" friendlyname="Response Content" stage="Response Content" /><output type="text" name="HTTP Status Code" friendlyname="HTTP Status Code" stage="HTTP Status Code" /><output type="collection" name="Response Headers" friendlyname="Response Headers" stage="Response Headers" /><output type="number" name="status" friendlyname="status" stage="status" /><output type="text" name="message" friendlyname="message" stage="message" /><output type="text" name="Request Data" friendlyname="Request Data" stage="Request Data" /></outputs><onsuccess>2384401c-beaf-419e-b89d-d3e218696831</onsuccess><resource object="Teneo Fetch" action="End Session" /></stage><stage stageid="4f38eca9-8096-4ce1-b86b-4056dd8dfc88" name="status" type="Data"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><display x="-330" y="30" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="2384401c-beaf-419e-b89d-d3e218696831" name="Session Ended Successfully?" type="Decision"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><display x="195" y="15" /><decision expression="[status]=1" /><ontrue>18389af2-d282-4671-bbc2-947b7c5e3578</ontrue><onfalse>6fa26eb6-b74c-46d7-962d-54bb2cca3bc7</onfalse></stage><stage stageid="6fa26eb6-b74c-46d7-962d-54bb2cca3bc7" name="Error Ending Session" type="Exception"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><display x="330" y="15" /><exception localized="yes" type="Teneo Exception" detail=""Session was not ended successfully"" /></stage><stage stageid="e7b35dd7-231c-4f7c-83c1-61a168eee793" name="message" type="Data"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><display x="-195" y="30" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="49b6b674-4fbb-4ddb-94c1-1fe8fac9382f" name="Set Values" type="MultipleCalculation"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><loginhibit onsuccess="true" /><display x="15" y="135" /><onsuccess>7029541c-c79b-42c7-b5d3-7bc92be38355</onsuccess><steps><calculation expression="[Teneo Response Data.text]=[Phrase Data.Expected]" stage="Phrase Data.Matches" /><calculation expression="[Teneo Response Data.text]" stage="Phrase Data.Actual" /><calculation expression="[SessionID]" stage="Phrase Data.Session" /></steps></stage><stage stageid="4c5798f4-9678-4c67-bfc9-a424da3a5895" name="SessionID" type="Data"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><display x="-255" y="30" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="18389af2-d282-4671-bbc2-947b7c5e3578" name="Clear SessionID" type="Calculation"><subsheetid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</subsheetid><loginhibit onsuccess="true" /><display x="105" y="15" /><onsuccess>d9346ff9-55ce-4c88-a80d-e9bdceee709b</onsuccess><calculation expression="""" stage="SessionID" /></stage><stage stageid="c7d43413-c353-4ad0-9039-221409032c43" name="Process Data" type="SubSheet"><loginhibit onsuccess="true" /><display x="0" y="-90" /><onsuccess>d4b4fa70-70d0-4c50-b9dd-705354e9fb3b</onsuccess><processid>927b3cfb-80a2-45b9-8af5-e0d7a1e67f32</processid></stage><stage stageid="d4b4fa70-70d0-4c50-b9dd-705354e9fb3b" name="End" type="End"><loginhibit onsuccess="true" /><display x="0" y="-30" /><outputs><output type="collection" name="Process Data" stage="Phrase Data" /></outputs></stage></process></process> <object id="66085a0f-6bf6-45e2-b5ed-6345f014f05b" name="MS Excel VBO" xmlns="http://www.blueprism.co.uk/product/process"><process name="MS Excel VBO" version="6.10.0.30674" bpversion="6.10.0.30674" narrative="The VBO replacement for the Common Automation Excel business object" byrefcollection="true" type="object" runmode="Exclusive"><appdef><element name="Application Root"><id>ca515603-8af2-4608-8a70-31028a7d9a0b</id><type>Application</type><basetype>Application</basetype><datatype>unknown</datatype><diagnose>False</diagnose></element></appdef><view><camerax>-133</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view><preconditions /><endpoint narrative="" /><subsheet subsheetid="ab6c7fcd-9997-4c5c-9ff1-2dcb5879975a" type="CleanUp" published="True"><name>Clean Up</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="67651307-0389-47bf-ae8d-fd94364e808f" type="Normal" published="True"><name>Remove Blank Rows</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="492548e8-2fa5-473e-9061-df8326d46e4c" type="Normal" published="False"><name>CheckInstanceHandle</name><view><camerax>-54</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="9f7a4a91-68c9-4871-bb65-417e96cc4ad1" type="Normal" published="False"><name>CheckInstanceAndWorkbook</name><view><camerax>-157</camerax><cameray>-70</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="41a07606-d51b-4fe3-a076-7a77a4ca2cde" type="Normal" published="False"><name>CheckFileExists</name><view><camerax>-22</camerax><cameray>-32</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="99e648cc-a136-471c-8424-19071c0fd9e7" type="Normal" published="True"><name>Create Instance</name><view><camerax>-60</camerax><cameray>-42</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="ec281dc5-ed57-4b8b-9bf5-212e314657aa" type="Normal" published="True"><name>Open Instance</name><view><camerax>209</camerax><cameray>-94</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="7ad81501-44a1-48ab-94fd-9b2c35ed20b8" type="Normal" published="True"><name>Attach</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="2b3544ad-af96-4f40-9b50-16dfbe0600f1" type="Normal" published="True"><name>Attach to workbook</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="6ec3006a-6553-4526-b522-32526c4aa3cc" type="Normal" published="True"><name>Close Instance</name><view><camerax>0</camerax><cameray>-42</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="4fb11e41-83d8-461d-8c0d-04cdd2f670e2" type="Normal" published="True"><name>Release Instance</name><view><camerax>0</camerax><cameray>-84</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="dc33871a-9aec-4a29-b811-3ab205ddf41e" type="Normal" published="True"><name>Exit</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="feb8ce9f-299e-4152-85a1-354a5f9d995c" type="Normal" published="True"><name>Close All Instances</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="859e3c31-acbc-48dd-8535-ef2ce9385d70" type="Normal" published="True"><name>Set Current Instance</name><view><camerax>-36</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="69db5cf5-4908-49c7-9027-8f48e26e5b27" type="Normal" published="True"><name>Set Events Enabled</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="268628ce-c0f3-492a-be5c-87b432e16d1d" type="Normal" published="True"><name>Show</name><view><camerax>0</camerax><cameray>-131</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="ef10421c-e1ff-4227-b367-c53059a6766d" type="Normal" published="True"><name>Hide</name><view><camerax>-62</camerax><cameray>-56</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="73b8ddb4-b679-4697-b3c4-79ce833a9456" type="Normal" published="True"><name>Create Workbook</name><view><camerax>-81</camerax><cameray>-204</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="2fb01e3f-e275-43bc-83eb-579001da335b" type="Normal" published="True"><name>Open Workbook</name><view><camerax>0</camerax><cameray>-15</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="6632ed99-8751-4c2a-ad00-3cc016300e08" type="Normal" published="True"><name>Activate Workbook</name><view><camerax>-137</camerax><cameray>-75</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="6e7cb0ad-5910-4065-aab2-2919726bae39" type="Normal" published="True"><name>Save Workbook</name><view><camerax>-44</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="76d598ed-b254-4c1e-8004-d4f2928b1450" type="Normal" published="True"><name>Save Current Workbook</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="21a53e34-8128-41cb-ad73-17250758ff23" type="Normal" published="True"><name>Save Workbook As</name><view><camerax>-64</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="81b9e5cd-a91d-4a33-bc23-1602c5fe878f" type="Normal" published="True"><name>Save Current Workbook As</name><view><camerax>-135</camerax><cameray>-3</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="6ccaae8b-c06f-45c8-8772-835218881458" type="Normal" published="True"><name>Close Workbook</name><view><camerax>-232</camerax><cameray>110</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="efe9d5bd-c8f0-42e1-aadc-6c7b0bfdd92c" type="Normal" published="True"><name>Close Current Workbook</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="ddb3c741-0c59-4ac8-a260-258fb8eb1674" type="Normal" published="True"><name>Is Read Only</name><view><camerax>-91</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="733c2840-8162-465a-a8f2-7d023087c369" type="Normal" published="True"><name>Activate Worksheet</name><view><camerax>-132</camerax><cameray>-106</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="f78a5f80-c2d5-4e9b-ae08-a56fb8007b18" type="Normal" published="True"><name>Create Worksheet</name><view><camerax>-120</camerax><cameray>-84</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="37a2442f-8e22-4749-8b44-4ef2980f28a6" type="Normal" published="True"><name>Delete Worksheet</name><view><camerax>16</camerax><cameray>25</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="79b9bf7c-222d-4cc3-adc8-5bb337fa6d72" type="Normal" published="True"><name>Move Worksheet</name><view><camerax>85</camerax><cameray>98</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="da83b3dd-0312-4b53-9732-e3f8e29c561f" type="Normal" published="True"><name>Copy and Paste Worksheet Range</name><view><camerax>0</camerax><cameray>84</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30" type="Normal" published="True"><name>Get Worksheet As Collection</name><view><camerax>-242</camerax><cameray>-126</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="e58a482d-f349-4f40-9b03-a903156ce1b5" type="Normal" published="True"><name>Get Worksheet As Collection (Fast)</name><view><camerax>0</camerax><cameray>-156</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="92799072-140a-4621-89cd-2da12475dcda" type="Normal" published="True"><name>Get Worksheet as Collection Offset</name><view><camerax>-119</camerax><cameray>-589</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e" type="Normal" published="True"><name>Get Worksheet Range As Collection</name><view><camerax>147</camerax><cameray>-33</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="f743df98-2e69-4559-89b6-32ef6637618d" type="Normal" published="True"><name>Split Worksheet</name><view><camerax>0</camerax><cameray>-21</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="becd6faa-f5c0-4d3a-a48a-cb54d3aa8909" type="Normal" published="True"><name>Get Worksheet Names</name><view><camerax>-10</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67" type="Normal" published="True"><name>Get Worksheet Name</name><view><camerax>-27</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="510b0ce5-bf46-43a1-86a4-72877f427e6f" type="Normal" published="True"><name>Get Worksheet Position</name><view><camerax>0</camerax><cameray>38</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="eacc4634-9985-4a1d-9773-8f79928708ee" type="Normal" published="True"><name>Worksheet Exists</name><view><camerax>105</camerax><cameray>81</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="dc139ac7-b971-481e-9528-b1521ae9fc92" type="Normal" published="True"><name>Get Number Of Rows</name><view><camerax>8</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="ed502669-4207-4c88-895d-8c58ec321578" type="Normal" published="True"><name>Go To Cell</name><view><camerax>-6</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="b0b877cd-07ce-4df1-a63b-89fa4d315c4c" type="Normal" published="True"><name>Go To Next Cell</name><view><camerax>-180</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="31ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5c" type="Normal" published="True"><name>Get Active Cell</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="0b5de6c6-ed9a-443d-95b8-142dd521120e" type="Normal" published="True"><name>Find Next Empty Cell</name><view><camerax>0</camerax><cameray>-42</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="eaafa766-b0ce-4891-8e6e-de12d6283ae0" type="Normal" published="True"><name>Go To Next Empty Cell Left</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="d2d4c80d-3058-4d60-8e96-7b9b12f9ae58" type="Normal" published="True"><name>Go To Next Empty Cell Right</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="5a78c1a5-e339-4f76-9203-d180bee31770" type="Normal" published="True"><name>Go To Next Empty Cell Up</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="82492075-b486-413c-9bd4-05eba466843e" type="Normal" published="True"><name>Go To Next Empty Cell Down</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="5698ca16-b00d-4d62-9d9b-e76e8295b556" type="Normal" published="True"><name>Set Cell Value</name><view><camerax>55</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="0dbe03a0-e259-47ab-bee7-7dec41ae32e7" type="Normal" published="True"><name>Write Collection</name><view><camerax>0</camerax><cameray>-63</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="0e031661-2f5e-4cb2-949b-97babe59ff81" type="Normal" published="True"><name>Get Cell Value</name><view><camerax>0</camerax><cameray>-4</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="d96215cc-750e-4616-8852-1d4d44a9f21b" type="Normal" published="True"><name>Get Active Cell Value</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="17f8ab72-203a-42d4-a59b-a073ccd57bb0" type="Normal" published="True"><name>Get Formatted Cell Value</name><view><camerax>-54</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="a031ba9a-3bd2-49b3-8d9b-6f982b34eb3c" type="Normal" published="True"><name>Format Cell</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="9b535bfc-4f80-4d7c-88b5-49b941688030" type="Normal" published="True"><name>Format Current Cell</name><view><camerax>0</camerax><cameray>-28</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="39374841-edab-4ea9-86d9-5f2fff3f1a5f" type="Normal" published="True"><name>Set Window Size</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="904eeb0d-e6a2-408b-99b5-621307252585" type="Normal" published="True"><name>Set Window Location</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="d4998c94-d432-4713-81a5-e902535089c6" type="Normal" published="True"><name>Set Window State</name><view><camerax>-11</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="9147cb85-5c6f-4a47-adcf-ab472d5a0b5a" type="Normal" published="True"><name>Select</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a" type="Normal" published="True"><name>Delete</name><view><camerax>82</camerax><cameray>21</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="659749b0-1f00-4e33-956d-6be6172a8739" type="Normal" published="True"><name>Insert</name><view><camerax>0</camerax><cameray>42</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="71ebd060-a411-45fc-8f39-132eb3e5ff79" type="Normal" published="True"><name>Copy</name><view><camerax>98</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="5eee765d-c84b-493f-9132-f6a27f296d0e" type="Normal" published="True"><name>Cut</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="035d5ed0-2f39-46ca-80c1-b0127418dc9e" type="Normal" published="True"><name>Paste</name><view><camerax>-282</camerax><cameray>42</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="2c59601b-2b70-4c97-a218-0abf1bf7463a" type="Normal" published="True"><name>Write To Clipboard</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="c37e9923-b729-471b-80b1-7d44113ca618" type="Normal" published="True"><name>Protect Workbook</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="7316eded-6aed-4d1d-9eeb-64fbbb8e53a0" type="Normal" published="True"><name>Hide Worksheet</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="e62b9c20-62f8-4d28-8f19-de7610e56e1e" type="Normal" published="True"><name>Hide Other Worksheets</name><view><camerax>-276</camerax><cameray>-917</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="1487aa65-ac8a-44e9-a6e9-8b16b4be5199" type="Normal" published="True"><name>Import CSV</name><view><camerax>52</camerax><cameray>88</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="4229da44-68c0-4b51-9d2c-08be4a9d6727" type="Normal" published="True"><name>Run Macro</name><view><camerax>0</camerax><cameray>42</cameray><zoom version="2">1.25</zoom></view></subsheet><stage stageid="8f886cd8-eef6-485f-b9f3-0086c90eecdb" name="Start" type="Start"><loginhibit /><display x="0" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>d0d87ebb-154d-4756-8b89-d2d5445479ae</onsuccess></stage><stage stageid="d0d87ebb-154d-4756-8b89-d2d5445479ae" name="End" type="End"><loginhibit /><display x="0" y="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="13efd9ee-454d-4e73-a19d-91a25c412087" name="Stage1" type="ProcessInfo"><display x="-195" y="-105" w="180" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /><references><reference>System.Data.dll</reference><reference>System.Xml.dll</reference><reference>System.Drawing.dll</reference><reference>System.Windows.Forms.dll</reference></references><imports><import>System</import><import>System.Drawing</import><import>System.Collections.Generic</import><import>System.IO</import><import>Microsoft.VisualBasic</import><import>System.Windows.Forms</import><import>System.Data</import><import>System.Diagnostics</import><import>System.Text</import><import>System.Threading</import><import>System.Runtime.InteropServices</import></imports><language>visualbasic</language><globalcode><![CDATA[]]></globalcode><code><![CDATA[ ' External functions used to make sure the excel instances are exited and processes killed Declare Function EndTask Lib "user32.dll" (ByVal hWnd As IntPtr) As Integer Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" _ (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr Declare Function FindWindowEx Lib "user32.dll" Alias "FindWindowExA" _ (hWnd1 As IntPtr, hWnd2 As IntPtr, lpsz1 As String, lpsz2 As String) As IntPtr Declare Function GetWindowThreadProcessId Lib "user32.dll" _ (ByVal hWnd As IntPtr, ByRef lpdwProcessId As Integer) As Integer Declare Function SetLastError Lib "kernel32.dll" _ (ByVal dwErrCode As Integer) As IntPtr Declare Function AccessibleObjectFromWindow Lib "oleacc.dll" _ (hWnd As IntPtr, dwId As Int32, ByRef riid As Guid, <MarshalAs(UnmanagedType.Interface)> ByRef ppvObject As Object) As Int32 ' The 'active' instance of excel. ' This is updated on any access of an instance (either adding a new ' instance or getting one) ' Private CurrentInstance As Object ' Map of instances keyed against the handles which represent them. ' Private HandleMap As Dictionary(Of Integer, Object) ' Map of handles keyed against the instances they represent. ' Here to ensure we don't assign multiple handles to a single ' instance and bring about a memory leak ' Private InstanceMap As Dictionary(Of Object, Integer) ' Constructor - this just initialises the collections which map ' the excel instances to handles and vice versa. Public Sub New() Me.HandleMap = New Dictionary(Of Integer, Object)() Me.InstanceMap = New Dictionary(Of Object, Integer)() End Sub ' Execute a sub within a specific timeout period ' ' @param timeout The number of seconds to wait before timing out ' @param name The name of the operation ' @param operation The operation to perform Private Sub ExecWithTimeout(timeout As Integer, name As String, operation As Action) Dim ar = operation.BeginInvoke(Nothing, Nothing) If Not ar.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(timeout)) Then Throw New TimeoutException(name & " took more than " & timeout & " secs.") End If operation.EndInvoke(ar) End Sub ' Execute a function within a specific timeout period ' ' @param timeout The number of seconds to wait before timing out ' @param name The name of the operation ' @param operation The operation to perform ' ' @return The result of the operation Private Function ExecWithTimeout(Of T)(timeout As Integer, name As String, operation As Func(Of T)) As T Dim ar = operation.BeginInvoke(Nothing, Nothing) If Not ar.AsyncWaitHandle.WaitOne(TimeSpan.FromSeconds(timeout)) Then Throw New TimeoutException(name & " took more than " & timeout & " secs.") End If return operation.EndInvoke(ar) End Function ' Used to hold a reference to the last exception that occurred ' Be careful to set back to nothing when the type has been checked. Private mLastException As Exception = Nothing ' Loops over all excel instances and gets the instance with a given ' workbook name. This uses active accessibility because: ' Dim application = GetObject(,"Excel.Application) ' application.Windows(workbookName).Activate() ' dosen't work if there is more than one instance of excel ' ' @param workBookName The name of the workbook ' ' @return The application instance Public Function OpenNamedObjectAA(workbookName As String) As Object Const OBJID_NATIVEOM = &HFFFFFFF0 Dim IID_DISPATCH As New Guid("00020400-0000-0000-C000-000000000046") Dim workBook As Object = Nothing Do Dim XLhwnd As IntPtr = FindWindowEx(IntPtr.Zero, XLhwnd, "XLMAIN", Nothing) If IntPtr.Equals(XLhwnd, IntPtr.Zero) Then Exit Do Dim XLDESKhwnd As IntPtr = FindWindowEx(XLhwnd, IntPtr.Zero, "XLDESK", Nothing) Dim WBhwnd As IntPtr = FindWindowEx(XLDESKhwnd, IntPtr.Zero, "EXCEL7", Nothing) AccessibleObjectFromWindow(WBhwnd, OBJID_NATIVEOM, IID_DISPATCH, workBook) If workBook IsNot Nothing Then Dim application As Object = workBook.Application If application IsNot Nothing Then Try application.Windows(workbookName).Activate() Return application Catch ex As Exception Continue Do End Try End If End If Loop Throw new Exception("Excel with workbook name '" & workBookName & "' not found.") End Function ' Gets the handle for a given instance ' ' If the instance is not yet held, then it is added to the ' map and a handle is assigned to it. It is also set as the ' 'current' instance, accessed with a handle of zero in the ' below methods. ' ' Either way, the handle which identifies the instance is returned ' ' @param Instance The instance for which a handle is required ' ' @return The handle of the instance Protected Function GetHandle(Instance As Object) As Integer If Instance Is Nothing Then Throw New ArgumentNullException("Tried to add an empty instance") End If ' Check if we already have this instance - if so, return it. If InstanceMap.ContainsKey(Instance) Then CurrentInstance = Instance Return InstanceMap(Instance) End If Dim key as Integer For key = 1 to Integer.MaxValue If Not HandleMap.ContainsKey(key) HandleMap.Add(key, Instance) InstanceMap.Add(Instance, key) Me.CurrentInstance = Instance Return key End If Next key Return 0 End Function ' Gets the instance corresponding to the given handle, setting ' the instance as the 'current' instance for future calls ' ' A value of 0 will provide the 'current' instance, which ' is set each time an instance is added or accessed. ' ' This will return Nothing if the given handle does not ' correspond to a registered instance, or if the current ' instance was closed and the reference has not been updated. ' ' @param Handle The handle representing the instance required, ' or zero to get the 'current' instance. Protected Function GetInstance(Handle As Integer) As Object Dim Instance As Object = Nothing If Handle = 0 Then If CurrentInstance Is Nothing Then ' Special case - getting the current instance when the ' instance is not set, try and get a current open instance. ' If none there, create a new one and assign a handle as if ' CreateInstance() had been called ' Try ' Instance = GetObject(,"Excel.Application") ' Catch ex as Exception ' Not running ' Instance = Nothing ' End Try ' If Instance Is Nothing Then Create_Instance(Handle) ' Instance = CreateObject("Excel.Application") ' Force the instance into the maps. ' GetHandle(Instance) ' CurrentInstance should now be set. ' If it's not, we have far bigger problems ' End If End If Return CurrentInstance End If Instance = HandleMap(Handle) If Not Instance Is Nothing Then CurrentInstance = Instance End If Return Instance End Function ' Helper method in forcing a com object to be released. Private Sub ReleaseObject(ByVal comOj As Object) Try System.Runtime.InteropServices.Marshal.ReleaseComObject(comOj) System.Runtime.InteropServices.Marshal.FinalReleaseComObject(comOj) comOj = Nothing Catch ex As Exception comOj = Nothing Finally ' Why is GC.Collect being called twice? ' See https://msdn.microsoft.com/en-us/library/ff647790.aspx?f=255&MSPPError=-2147217396#scalenetchapt05_topic9 GC.Collect() GC.WaitForPendingFinalizers() GC.Collect() End Try End Sub ' Close the instance with the given handle, not saving any work, making ' sure that it is removed from this VBO's collection of instances ' ' @param Handle The handle representing the instance to close Protected Sub CloseInstance(Handle As Integer) CloseInstance(Handle, False) End Sub ' Close the instance with the given handle, saving the work as specified. ' ' @param Handle The handle representing the instance ' ' @param SaveWorkbooks True to save the workbooks before quitting the instance, ' False to discard any changes Protected Sub CloseInstance(Handle As Integer, SaveWorkbooks As Boolean) Dim Instance As Object = Nothing If Handle = 0 AndAlso CurrentInstance Is Nothing Then Throw New NullReferenceException("Tried to close nonexistent current instance") ElseIf Handle = 0 ' Current Instance - reset it Handle = GetHandle(CurrentInstance) ' We need the handle to remove from HandleMap Instance = CurrentInstance CurrentInstance = Nothing Else Instance = GetInstance(Handle) End If Me.HandleMap.Remove(Handle) Me.InstanceMap.Remove(Instance) Instance.DisplayAlerts = False ' Hide alerts ' First close all the workbooks and the workbooks collection Dim wbs as Object = Instance.Workbooks If wbs IsNot Nothing Then For Each Workbook As Object In wbs Workbook.Close(SaveWorkbooks) ReleaseObject(Workbook) Next wbs.Close() End If ReleaseObject(wbs) ' Try quitting - sometimes this is enough Instance.Quit() ' Try and force a com object release - this might quit excel for us. ReleaseObject(Instance) ' Now if the com object has released the RCW, we need to stop ' We'll know because if we try and get the version and it fails ' then the COM object has been cleaned up. ' If so, end the proc now - we have to assume the instance is gone Dim Ver as Double = 0.0 Try Ver = Val(Instance.Version) Catch ex as Exception ' Not got the version - assuming cleared up Return Finally SetLastError(0) ' If any errors have occurred thus far, clear them End Try ' Now it's the messy stuff to try and find the excel instance and nuke ' it from orbit. It's the only way to be sure. ' The window handle for the excel instance Dim hwnd As IntPtr = IntPtr.Zero ' Later versions of excel expose the window handle If Val(Ver) >= 10 Then _ hwnd = New IntPtr(CType(Instance.Parent.Hwnd, Integer)) ' If the window handle isn't set, must be an earlier version of excel ' Use FindWindow to find the window with the GUID that we set in it on creation If IntPtr.Equals(hwnd, IntPtr.Zero) Then _ hwnd = FindWindow(Nothing, Instance.Caption) ' If the window handle is still zero, the instance must already be closed If Not IntPtr.Equals(hwnd, IntPtr.Zero) Then ' Get the process ID for the window we have Dim resp, procId as Integer resp = GetWindowThreadProcessId(hwnd, procId) If procId = 0 Then ' can’t get Process ID If EndTask(hwnd) = 0 Then ' EndTask returns a bool - 0 = False Throw New ApplicationException("Failed to close Excel Instance.") End If Else ' We have a process ID - use it to kill excel Dim proc As Process = Process.GetProcessById(procId) ' Try clicking the 'X' proc.CloseMainWindow() proc.Refresh() If Not proc.HasExited Then proc.Kill() ' Last resort - kill it with fire End If End If End If End Sub ' Creates a new workbook in the instance represented by the given handle ' ' @param Handle The handle of the instance on which the workbook should be held ' ' @return The workbook object that was created. Protected Function NewWorkbook(Handle as Integer) As Object Dim wb as Object = GetInstance(handle).Workbooks.Add() ' Create a new Worksheet? if wb.Worksheets.Count = 0 Then wb.Sheets.Add().Activate() Else ' Just use the first sheet wb.Sheets(1).Activate() End If Return wb End Function ' Gets the workbook in the given instance with the given name. ' ' @param Handle The handle representing the instance which holds the workbook ' ' @param Name The name of the workbook on the instance ' ' @return The object representing the workbook defined Protected Function GetWorkbook(Handle As Integer, Name as String) As Object Dim wb as Object = Nothing If String.IsNullOrEmpty(Name) Then wb = GetInstance(Handle).ActiveWorkbook If wb Is Nothing ' We need to create a deafult workbook wb = NewWorkbook(Handle) End If Return wb Else Return GetInstance(Handle).Workbooks(Name) End If End Function ' Gets the worksheet specified by the given handle, workbook name and ' worksheet name. If no such sheet is available, this will create a ' new one and return that ' ' @param Handle The handle identifying the instance which should be ' acted on ' ' @param WorkbookName The name of the workbook within the instance ' ' @param WorksheetName The name of the worksheet required ' ' @return The sheet object representing the sheet with the given name Protected Function GetWorksheet(Handle As Integer, _ WorkbookName As String, _ WorksheetName As String) As Object Return GetWorksheet(Handle,WorkbookName,WorksheetName,True) End Function ' Gets the worksheet specified by the given handle, workbook name and ' worksheet name. If no such sheet is available, this will create a ' new one or return Nothing, depending on the given flag ' ' @param Handle The handle identifying the instance which should be ' acted on ' ' @param WorkbookName The name of the workbook within the instance ' ' @param WorksheetName The name of the worksheet required ' ' @param CreateIfNotExists True to create the worksheet if it doesn't ' exist; False to return Nothing if it doesn't exist. ' ' @return The sheet object representing the sheet required or Nothing ' if no such sheet exists and CreateIfNotExists was False Protected Function GetWorksheet(Handle As Integer, _ WorkbookName As String, _ WorksheetName As String, _ CreateIfNotExists As Boolean) As Object Dim wb As Object = GetWorkbook(Handle, WorkbookName) If (String.IsNullOrEmpty(WorksheetName)) Then Dim ws as Object = wb.ActiveSheet If ws Is Nothing Then Return wb.Sheets.Add() Else Return ws End If Else Dim sheets as Object = wb.Sheets If sheets IsNot Nothing Then For Each sheet as Object in sheets If sheet.Name = WorksheetName Then _ Return sheet Next End If ' Didn't find the sheet... If CreateIfNotExists Then Dim sheet as Object = sheets.Add() sheet.Name = WorksheetName Return sheet End If ' Nothing else we can do - return nowt Return Nothing End If End Function ' Gets the next cell, relative to a given cell in a given direction ' Note that if the cell is at a boundary, then the same cell is returned. ' ' @param cell : The cell to use as a base cell ' ' @param strDir : one of "L", "R", "U", "D" representing a direction from ' the given cell to move in. ' ' @return : The cell object representing the 'next cell' Protected Function GetNextCell(cell as Object, strDir as String) As Object Try Select Case strDir Case "L" cell = cell.Offset(0,-1) Case "R" cell = cell.Offset(0,1) Case "U" cell = cell.Offset(-1,0) Case "D" cell = cell.Offset(1,0) End Select Catch ex As Exception ' A COM Exception is thrown if the cell is at a boundary and the offset ' would break that boundary End Try Return cell End Function Const SchemaColumnName As String = "Column Name" Function GetWorkSheetUsedRangeAsDataTable( usedRange as object, firstRowIsHeader As Boolean, fetchDataWithMethod As String) As DataTable If usedRange Is Nothing Then Throw new ArgumentNullException("usedRange") Dim range(usedRange.Rows.Count, usedRange.Columns.Count) As Object Select Case fetchDataWithMethod Case "Text" For currentRow As Integer = 1 To usedRange.Rows.Count For currentColumn As Integer = 1 To usedRange.Columns.Count Dim text = usedRange.Rows(currentRow).Cells(currentColumn).Text range(currentRow, currentColumn) = text Next Next Case "Value2" range = usedRange.Value2 Case Else range = usedRange.Value End Select Dim result = new DataTable() Dim headingsList = GetFirstRowHeadings(range, firstRowIsHeader) For Each heading As String In headingsList result.Columns.Add(heading, GetType(string)) Next Dim startRowIndex = If(firstRowIsHeader AndAlso range.GetLength(0) > 1, 2, 1) Dim totalRows As Integer = usedRange.Rows.Count Dim totalCols As Integer = If(fetchDataWithMethod = "Text", usedRange.Columns.Count, range.GetLength(1)) For i As Integer = startRowIndex To totalRows Dim currentRow As DataRow = result.NewRow result.Rows.Add(currentRow) For j As Integer = 1 To totalCols Dim value = range(i, j) If value Is Nothing Then value = String.Empty currentRow.Item(j - 1) = value.ToString() Next j Next i Return result End Function Function GetFirstRowHeadings(arr as Object(,), firstRowIsHeader As Boolean) as List(Of String) Dim result = new List(Of String)() For i as Integer = 1 to arr.GetLength(1) Try Dim value = arr(1, i) Dim heading As String = If(value Is Nothing OrElse Not firstRowIsHeader, String.Empty, value.ToString) result.Add(heading) Catch e As Exception ' ignore index out of bound exception, ' typically thrown when .Text is used End Try Next i return result End Function Function ParseDelimSeparatedVariables( data As String, delimStr As String, schema As DataTable, firstRowIsHeader As Boolean) As DataTable Const DefaultState As Integer = 0 Const Instring As Integer = 1 Const FirstQuote As Integer = 2 Const Quote As Char = """"c If delimStr.Length = 0 Then delimStr = "," If delimStr.Length <> 1 Then Throw New Exception("Delimiter must be a single character") Dim delim As Char = delimStr(0) Dim state As Integer = DefaultState Dim firstRow As Boolean = True Dim columnValue As New StringBuilder() Dim emptySchema As Boolean = schema Is Nothing OrElse schema.Rows.Count = 0 If emptySchema Then schema = Nothing Dim outputCollection As New DataTable() If Not emptySchema Then For Each schemaRow As DataRow In schema.Rows Dim colName As String = schemaRow(SchemaColumnName).ToString outputCollection.Columns.Add(colName, GetType(String)) Next End If Dim row As DataRow = Nothing Dim colIndex As Integer = 0 Using sw As New StringReader(data) While True Dim line As String = sw.ReadLine() If line Is Nothing Then Exit While ' If we're not processing a CRLF in the middle of a string, we want to move ' onto the next row; if we are, we keep the current row and column since we're ' still writing to that 'cell'. If state <> Instring Then row = outputCollection.NewRow colIndex = 0 End If For Each ch As Char In line Select Case ch Case delim ' ie. 'ch' is the specified delimiter - "," or "\t" Select Case state Case Instring columnValue.Append(delim) Case Else ' Covers 'default' and 'first quote'. If firstRow Then HandleFirstRow( firstRowIsHeader, columnValue.ToString(), colIndex, row, schema ) Else row(colIndex) = columnValue.ToString End If columnValue.Length = 0 state = DefaultState colIndex += 1 End Select Case Quote Select Case state Case FirstQuote state = Instring columnValue.Append(Quote) Case Instring state = FirstQuote Case Else ' If we find a quote in the middle of a non-quoted cell, it's ' a literal quote; otherwise (ie. at the start of a cell), it ' means the cell value is wrapped - go into 'Instring' state If columnValue.Length > 0 Then columnValue.Append(Quote) Else state = Instring End If End Select Case Else columnValue.Append(ch) End Select Next If firstRow Then HandleFirstRow( firstRowIsHeader, columnValue.ToString(), colIndex, row, schema ) firstRow = False columnValue.Length = 0 state = DefaultState If Not firstRowIsHeader Then outputCollection.Rows.Add(row) Else ' If we're still in the middle of the string we want to include the CRLF in the ' actual value that we're writing and leave the state at 'Instring' If state = Instring Then columnValue.Append(vbCrLf) Else row.Item(colIndex) = columnValue.ToString outputCollection.Rows.Add(row) columnValue.Length = 0 state = DefaultState End If End If End While End Using Return outputCollection End Function Sub HandleFirstRow(firstRowIsHeader As Boolean, val As String, colIndex As Integer, row As DataRow, schema As DataTable) Dim tab = row.Table If schema Is Nothing Then If firstRowIsHeader Then Dim colName As String = val tab.Columns.Add(colName, GetType(String)) Else Dim colName As String = "Column " & tab.Columns.Count tab.Columns.Add(colName, GetType(String)) row(colIndex) = val End If Else If firstRowIsHeader Then Dim schemaColName As String = schema.Rows(colIndex)(SchemaColumnName).ToString Dim colName As String = val If colName <> schemaColName Then Throw New Exception("Column name mismatch. Column '" & colName & "' dosen't match schema name of '" & schemaColName & "'") End If End If End If End Sub ' The common language runtime (CLR) automatically passes locale ID 1033 to all methods and properties ' in the Excel object model that accept locale-sensitive data. There is no way to change this behavior ' automatically for all calls into the object model. However, you can pass a different locale ID to a ' specific method by using InvokeMember to call the method and by passing the locale ID to the culture ' parameter of the method. ' https://msdn.microsoft.com/en-us/library/bb157877.aspx ' Additionaly we must use the culture that Excel is using and not the local machine. Private Function InvokeReflection(Instance As Object, Name As String, bindingFlags As Reflection.BindingFlags, ParamArray args() As Object) As Object const msoLanguageIDUI = 2 'User interface language. Dim culture = New System.Globalization.CultureInfo(DirectCast( _ CurrentInstance.LanguageSettings.LanguageID(msoLanguageIDUI), Integer)) Return Instance.GetType().InvokeMember(Name, bindingFlags, Nothing, Instance, args, culture) End Function Private Function Invoke(Instance As Object, Name As String, ParamArray args() As Object) As Object Return InvokeReflection(Instance, Name, Reflection.BindingFlags.InvokeMethod, args) End Function Private Sub SetProperty(Instance As Object, Name As String, ParamArray args As Object()) InvokeReflection(Instance, Name, Reflection.BindingFlags.SetProperty, args) End Sub Private Function GetProperty(Instance As Object, Name As String) As Object Return InvokeReflection(Instance, Name, Reflection.BindingFlags.GetProperty) End Function ' Gets the clipboard text, ensuring that the retrieval is performed ' on an STA thread so that it retrieves it correctly. Function GetClipboardText() As String Dim data As String = Nothing With New Threading.Thread(Sub() data = Clipboard.GetDataObject().GetData(DataFormats.Text, True)) .SetApartmentState(Threading.ApartmentState.STA) .Start() .Join() End With Return data End Function ' Sets the clipboard text, ensuring that it is done on an STA thread. Sub SetClipboardText(value as String) With New Threading.Thread(Sub() Clipboard.SetText(value)) .SetApartmentState(Threading.ApartmentState.STA) .Start() .Join() End With End Sub ]]></code></stage><stage stageid="debd0d09-d7e8-4af4-b718-c69fd2d3db22" name="Clean Up" type="SubSheetInfo"><subsheetid>ab6c7fcd-9997-4c5c-9ff1-2dcb5879975a</subsheetid><narrative>Closes all the instances that have been created / attached to using this business object.</narrative><display x="-180" y="-105" w="180" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="74a37e04-8569-40b9-8cc7-55d419e6c658" name="Start" type="Start"><subsheetid>ab6c7fcd-9997-4c5c-9ff1-2dcb5879975a</subsheetid><loginhibit /><display x="15" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>fedc107e-577b-47d9-a445-c3a3e66ef516</onsuccess></stage><stage stageid="d2814bb7-61fc-4b4f-8fd9-2dd9f79c06ba" name="End" type="End"><subsheetid>ab6c7fcd-9997-4c5c-9ff1-2dcb5879975a</subsheetid><loginhibit /><display x="15" y="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="9864b229-3596-444e-afb1-b46efff51132" name="Create Workbook" type="SubSheetInfo"><subsheetid>73b8ddb4-b679-4697-b3c4-79ce833a9456</subsheetid><narrative>Creates a workbook on the specified instance, returning the resultant name. Params: - handle : Number : The handle identifying the instance on which the workbook should be required. The default of zero indicates the current instance. Returns: - Workbook Name : Text : The workbook name that Excel has granted to the new workbook. By default, Excel will call it "Book<n>" where <n> is a positive integer. Exceptions: - Bad Handle : If the given handle did not correspond to an instance.</narrative><display x="-255" y="-300" w="330" h="210" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="e4ba7053-63b7-4fa4-b64b-12309c5d3d51" name="Start" type="Start"><subsheetid>73b8ddb4-b679-4697-b3c4-79ce833a9456</subsheetid><loginhibit /><display x="-15" y="-390" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the workbook should be created. The default of zero indicates the currently active instance." stage="handle" /></inputs><onsuccess>852ff62f-6d2b-4031-b675-ec155fd88908</onsuccess></stage><stage stageid="1d707fac-863d-4281-b9d0-a65c74bf374c" name="End" type="End"><subsheetid>73b8ddb4-b679-4697-b3c4-79ce833a9456</subsheetid><loginhibit /><display x="-15" y="-120" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="Workbook Name" narrative="The name of the workbook that Excel has created - this can be changed using the "Save Workbook As" action" stage="workbookname" /></outputs></stage><stage stageid="88aa07c9-ea21-42c6-80da-110e83fc2748" name="new" type="Note"><subsheetid>ab6c7fcd-9997-4c5c-9ff1-2dcb5879975a</subsheetid><narrative>Clean Up Page This is an optional page where you might choose to perform some finalisation (or "cleanup") tasks as your business object is closed down. The cleanup action will be called automatically immediately after closing your business object at the end of a business process. You will not be able to call this action from a business process, nor will it be called at any other time than before the disposal of the business object.</narrative><display x="-180" y="60" w="180" h="230" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="d7cd0bd3-f4fc-4acb-921b-97d3cff31998" name="new" type="Note"><narrative>Initialise Page This is an optional page where you might choose to perform some initialisation tasks after your business object is loaded. The initialise action will be called automatically immediately after loading your business object. You will not be able to call this action from a business process, nor will it be called at any other time than after the creation of the object.</narrative><display x="-195" y="30" w="300" h="150" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="4ffe88be-5a6a-452e-a183-9d1b9e027326" name="Open Workbook" type="SubSheetInfo"><subsheetid>2fb01e3f-e275-43bc-83eb-579001da335b</subsheetid><narrative>Opens a workbook using the instance specified in the given handle, opening the book represented by the given filename. Params : - handle : Number : The handle to the instance in which the workbook should be opened. The default value of zero indicates the current instance. - File name : Text : The path to the file which should be opened. Outputs: - Workbook Name : Text : The name of the workbook that Excel uses to identify it. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - File Not Found : If the given file does not exist or is not a file.</narrative><display x="-255" y="-165" w="360" h="210" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="753ce277-ee09-4ee9-841b-827037917616" name="Start" type="Start"><subsheetid>2fb01e3f-e275-43bc-83eb-579001da335b</subsheetid><loginhibit /><preconditions><condition narrative="" /><condition narrative="" /></preconditions><display x="15" y="-255" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required workbook should be opened. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="File name" narrative="The path and name of the file which should be opened." stage="filename" /></inputs><onsuccess>9e0df7e0-ab34-4a97-9f69-db66c88ff5f4</onsuccess></stage><stage stageid="18a306bf-d323-4c4e-83b5-4b226773161c" name="End" type="End"><subsheetid>2fb01e3f-e275-43bc-83eb-579001da335b</subsheetid><loginhibit /><display x="15" y="105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="Workbook Name" narrative="The name used by Excel to identify the workbook - usually this is the file name (without the path)." stage="workbookname" /></outputs></stage><stage stageid="4d2c2635-39a5-41ce-8c67-49eb1db37d55" name="Save Workbook" type="SubSheetInfo"><subsheetid>6e7cb0ad-5910-4065-aab2-2919726bae39</subsheetid><narrative>Saves the workbook using the current name as a filename. Params: - handle : Number : The integer identifying the instance on which the workbook should be saved. The default of 0 indicates the current instance. - Workbook Name : The name of the workbook to be saved. The default of empty indicates that the active workbook should be saved. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance.</narrative><display x="-285" y="-135" w="420" h="150" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="7c92f23e-cde4-457b-8a6e-2856cf88955e" name="Start" type="Start"><subsheetid>6e7cb0ad-5910-4065-aab2-2919726bae39</subsheetid><loginhibit /><display x="15" y="-195" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the workbook which should be saved resides. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Workbook Name" narrative="The name of the workbook which should be saved" stage="workbookname" /></inputs><onsuccess>ab6f627b-d630-4bdd-b840-7aac26b5806f</onsuccess></stage><stage stageid="4c75715c-7a4a-491b-804f-261ee86fcd95" name="End" type="End"><subsheetid>6e7cb0ad-5910-4065-aab2-2919726bae39</subsheetid><loginhibit /><display x="15" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="cee07b01-63cb-4d6d-9cc4-d1868ae80a0a" name="Save Workbook As" type="SubSheetInfo"><subsheetid>21a53e34-8128-41cb-ad73-17250758ff23</subsheetid><narrative>Save the given workbook using the given file name. Params : - handle : Number : The integer identifying the instance on which the workbook resides. Default (0) indicates the current instance - Workbook Name : Text : The name of the workbook which should be saved. Default ("") indicates the active workbook. - File name : Text : The path and name of the file to which the workbook should be saved. Output : - New Workbook Name : Text : The new name with which the workbook is identified within the excel instance. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance.</narrative><display x="-285" y="-180" w="420" h="210" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="b4f79caf-dea6-4a9a-95f0-0c05bea8b485" name="End" type="End"><subsheetid>21a53e34-8128-41cb-ad73-17250758ff23</subsheetid><loginhibit /><display x="15" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="New Workbook Name" narrative="The new workbook name which Excel will use to identify the workbook within the instance." stage="newworkbookname" /></outputs></stage><stage stageid="8ff7cce5-b764-42f9-88ed-51eb82a178c0" name="Activate Worksheet" type="SubSheetInfo"><subsheetid>733c2840-8162-465a-a8f2-7d023087c369</subsheetid><narrative>Activates / Creates the worksheet specified by the given parameters Params: - handle : Number : The instance handle; - Workbook Name : Text : is the name of the workbook on which the sheet resides / should be created; - Sheet name : Text : The name of the worksheet - Create If Missing? : Flag : Indicates if the worksheet should be created if one with that name doesn't exist on the workbook - if missing, it will *not* create it. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance. - Worksheet Not Found : If the given worksheet did not exist on the specified workbook.</narrative><display x="-285" y="-165" w="420" h="210" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="ddfe7f54-b5c2-410a-8a5d-3c2b52de9550" name="End" type="End"><subsheetid>733c2840-8162-465a-a8f2-7d023087c369</subsheetid><loginhibit /><display x="15" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="cf681fff-ce18-4dcc-b190-da9870383e35" name="Delete Worksheet" type="SubSheetInfo"><subsheetid>37a2442f-8e22-4749-8b44-4ef2980f28a6</subsheetid><narrative>Deletes the specified worksheet from the workbook. Params: - handle : Number : The excel instance handle - Workbook Name : Text : The name of the workbook - Worksheet Name : Text : The name of the sheet to delete. If the sheet doesn't exist, this will fail silently - ie. nothing will occur. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance. - Worksheet Not Found : If the named worksheet did not exist on the specified workbook, or if the active sheet was specified and there was no active sheet.</narrative><display x="-240" y="-135" w="360" h="210" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="c23803d1-15b5-4976-9466-8fb2e49529d3" name="Go To Cell" type="SubSheetInfo"><subsheetid>ed502669-4207-4c88-895d-8c58ec321578</subsheetid><narrative>Activates the cell in the given workbook, identified by the given cell reference. Params: - handle : Number: The integer handle identifying the excel instance (0 represents 'active' instance) - Cell Reference : Text : the cell reference to go to NOTE - the active sheet in the instance is the one on which the cell is active</narrative><display x="-240" y="-135" w="360" h="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="717bb32a-6e60-4972-bdcb-10d6c7b769a0" name="Start" type="Start"><subsheetid>ed502669-4207-4c88-895d-8c58ec321578</subsheetid><loginhibit /><display x="15" y="-180" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required cell should be navigated to. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Cell Reference" narrative="The cell reference on the currently active sheet within the specified instance which should be navigated to." stage="cellref" /></inputs><onsuccess>dc6f6efd-7724-48b0-8544-8f86f7bb1b8d</onsuccess></stage><stage stageid="f9e7f87b-06e3-441b-a4ed-7cb2a60b38c8" name="End" type="End"><subsheetid>ed502669-4207-4c88-895d-8c58ec321578</subsheetid><loginhibit /><display x="15" y="0" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="f9a7cb58-89e7-4295-be05-54454641b318" name="Set Cell Value" type="SubSheetInfo"><subsheetid>5698ca16-b00d-4d62-9d9b-e76e8295b556</subsheetid><narrative>Sets the specified cell's value to the given value. This has the side-effect of setting the active cell to that which is specified here. Exceptions Office 2013 onwards There are known issues when attempting to read and write data using the Excel VBO with the application set to run in background mode. These issues can be overcome by using the Show action </narrative><display x="-225" y="-135" w="330" h="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="15cc8816-ce32-4cb4-888f-7e42b5cbc653" name="Start" type="Start"><subsheetid>5698ca16-b00d-4d62-9d9b-e76e8295b556</subsheetid><loginhibit /><display x="15" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required cell value should be set. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Cell Reference" narrative="The reference on the speficied sheet identifying the cell which should be set." stage="cellref" /><input type="text" name="Value" narrative="The value to which the specified cell should be set." stage="value" /></inputs><onsuccess>f54da925-167d-4c17-b44c-1861acd36f9b</onsuccess></stage><stage stageid="3efecc12-e41e-4386-b852-2651ab750ecc" name="End" type="End"><subsheetid>5698ca16-b00d-4d62-9d9b-e76e8295b556</subsheetid><loginhibit /><display x="15" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="69459b62-2608-4fd7-a65e-40074b837222" name="Get Cell Value" type="SubSheetInfo"><subsheetid>0e031661-2f5e-4cb2-949b-97babe59ff81</subsheetid><narrative>Gets the value of the specified cell - note that if the cell has some formatting set in it, this does *not* return the formatted value - See "Get Formatted Cell Value". Note also that this has the side-effect of making the specified cell active.</narrative><display x="-195" y="-105" w="270" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="232e4bda-508e-44c7-8adb-315ce0fab8af" name="CreateWorkbook" type="Code"><subsheetid>73b8ddb4-b679-4697-b3c4-79ce833a9456</subsheetid><loginhibit /><display x="-15" y="-225" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><outputs><output type="text" name="name" stage="workbookname" /></outputs><onsuccess>1d707fac-863d-4281-b9d0-a65c74bf374c</onsuccess><code><![CDATA[ name = NewWorkbook(handle).Name]]></code></stage><stage stageid="6b5a2269-93b3-4e07-ae32-b53e1a63e772" name="filename" type="Data"><subsheetid>21a53e34-8128-41cb-ad73-17250758ff23</subsheetid><display x="-255" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="1365c72e-7420-4330-a305-53b0408ec641" name="cellref" type="Data"><subsheetid>5698ca16-b00d-4d62-9d9b-e76e8295b556</subsheetid><display x="-195" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="5f4cf65f-1932-4f8c-9902-00080ed74347" name="value" type="Data"><subsheetid>5698ca16-b00d-4d62-9d9b-e76e8295b556</subsheetid><display x="-195" y="60" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="50be384a-f88b-477b-9bff-ee76cd5684bc" name="Set Cell Value" type="Code"><subsheetid>5698ca16-b00d-4d62-9d9b-e76e8295b556</subsheetid><loginhibit /><display x="15" y="-15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="cellref" expr="[cellref]" /><input type="text" name="value" expr="[value]" /></inputs><onsuccess>3efecc12-e41e-4386-b852-2651ab750ecc</onsuccess><code><![CDATA[GetInstance(handle).ActiveCell.Value = value Dim activeCell = GetInstance(handle).ActiveCell SetProperty(activeCell, "Value", value)]]></code></stage><stage stageid="155a039e-a678-4192-866d-0a80004f7b1b" name="cellref" type="Data"><subsheetid>ed502669-4207-4c88-895d-8c58ec321578</subsheetid><display x="-195" y="0" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="edbe4d75-3363-4d77-b489-87fb02980fdc" name="Select Cell" type="Code"><subsheetid>ed502669-4207-4c88-895d-8c58ec321578</subsheetid><loginhibit /><display x="15" y="-60" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="cellref" expr="[cellref]" /></inputs><onsuccess>f9e7f87b-06e3-441b-a4ed-7cb2a60b38c8</onsuccess><code><![CDATA[ GetWorkbook(handle, "").ActiveSheet.Range(cellref,cellref).Activate()]]></code></stage><stage stageid="476742dd-c37f-49de-9eb5-1a66e5bcda17" name="handle" type="Data"><subsheetid>ed502669-4207-4c88-895d-8c58ec321578</subsheetid><display x="-195" y="-45" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="f54da925-167d-4c17-b44c-1861acd36f9b" name="Go To Cell" type="SubSheet"><subsheetid>5698ca16-b00d-4d62-9d9b-e76e8295b556</subsheetid><loginhibit /><display x="15" y="-75" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="Cell Reference" expr="[cellref]" /></inputs><onsuccess>50be384a-f88b-477b-9bff-ee76cd5684bc</onsuccess><processid>ed502669-4207-4c88-895d-8c58ec321578</processid></stage><stage stageid="e7dc5be6-9447-4f5a-b528-e3b4e6e92319" name="handle" type="Data"><subsheetid>5698ca16-b00d-4d62-9d9b-e76e8295b556</subsheetid><display x="-195" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="0b718057-0ae5-4c65-bb5a-d9a14ac2496a" name="handle" type="Data"><subsheetid>21a53e34-8128-41cb-ad73-17250758ff23</subsheetid><display x="-255" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="3fe639e8-b4a0-4f50-886f-fb9c99ed04b2" name="Activate Workbook" type="SubSheetInfo"><subsheetid>6632ed99-8751-4c2a-ad00-3cc016300e08</subsheetid><narrative>Activates the excel workbook identified by the given handle and name. Params: - handle : Number : The identifier of the instance which is holding the workbook; 0 (default) indicates the active instance - Name : Text : The name of the workbook which should be activated Exceptions: - Invalid Input Parameter : If the worksheet name parameter is given - Bad Handle : If the handle does not correspond to an Excel instance</narrative><display x="-240" y="-165" w="360" h="180" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="8084bde3-efbe-44ec-a484-c9b07c3d0b78" name="Start" type="Start"><subsheetid>6632ed99-8751-4c2a-ad00-3cc016300e08</subsheetid><loginhibit /><display x="45" y="-240" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the workbook should be activated. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Workbook Name" narrative="The workbook name identifying the workbook which should be activated - empty text indicates the currently active workbook, making this a no-op." stage="workbookname" /></inputs><onsuccess>6344b53e-9777-411e-bab1-aee5633bbc7d</onsuccess></stage><stage stageid="f8b84adb-3239-4125-af8d-4b1d02c950a6" name="End" type="End"><subsheetid>6632ed99-8751-4c2a-ad00-3cc016300e08</subsheetid><loginhibit /><display x="45" y="0" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="05b66883-e53e-43f9-a4d8-baa1fb79f412" name="handle" type="Data"><subsheetid>6632ed99-8751-4c2a-ad00-3cc016300e08</subsheetid><display x="-240" y="-45" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="dc6f6efd-7724-48b0-8544-8f86f7bb1b8d" name="Activate Workbook" type="SubSheet"><subsheetid>ed502669-4207-4c88-895d-8c58ec321578</subsheetid><loginhibit /><display x="15" y="-120" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the workbook should be activated. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Workbook Name" narrative="The workbook name identifying the workbook which should be activated - empty text indicates the currently active workbook, making this a no-op." expr="""" /></inputs><onsuccess>edbe4d75-3363-4d77-b489-87fb02980fdc</onsuccess><processid>6632ed99-8751-4c2a-ad00-3cc016300e08</processid></stage><stage stageid="1c1bd122-21c0-4b17-92f4-e5459d7921c6" name="handle" type="Data"><subsheetid>73b8ddb4-b679-4697-b3c4-79ce833a9456</subsheetid><display x="-240" y="-165" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="5b35f9f6-e395-4e4b-8dc1-5b2e86b17fbe" name="Close Workbook" type="SubSheetInfo"><subsheetid>6ccaae8b-c06f-45c8-8772-835218881458</subsheetid><narrative>Closes the specified workbook, saving changes if requested. Params: - handle : Number : The integer identifying the instance on which the workbook should be closed. 0 indicates the current instance. - Workbook Name : Text : The name of the workbook which should be closed. "" indicates the active workbook on the specified instance. - Save Changes : Flag : True to save the changes (the equivalent of calling 'Save Workbook' before closing the workbook); False to discard any changes when closing the workbook. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance.</narrative><display x="-540" y="-30" w="450" h="180" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="5f23862f-bb67-4712-ade2-d8d62befeb7b" name="End" type="End"><subsheetid>6ccaae8b-c06f-45c8-8772-835218881458</subsheetid><loginhibit /><display x="-255" y="210" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="f308d1c5-88b0-455a-bff7-8163c95d1eab" name="Open Workbook" type="Code"><subsheetid>2fb01e3f-e275-43bc-83eb-579001da335b</subsheetid><loginhibit /><display x="15" y="-75" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="filename" expr="[filename]" /><input type="number" name="handle" expr="[handle]" /><input type="number" name="timeout" expr="[Timeout]" /></inputs><outputs><output type="text" name="name" stage="workbookname" /></outputs><onsuccess>6c2fa22d-1876-46b7-92eb-cf8343d0911f</onsuccess><code><![CDATA[name = ExecWithTimeout(Timeout, "Open Workbook", Function() Dim instance = GetInstance(handle) Dim workbooks As object = GetProperty(instance, "Workbooks") Dim wb As Object = Invoke(workbooks, "Open", filename) Invoke(wb, "Activate") Return wb.Name End Function)]]></code></stage><stage stageid="5d910335-0e44-4e14-8093-292d0737faee" name="handle" type="Data"><subsheetid>2fb01e3f-e275-43bc-83eb-579001da335b</subsheetid><display x="-210" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="7edfc788-b0ea-4933-ac22-6345453b8c6c" name="filename" type="Data"><subsheetid>2fb01e3f-e275-43bc-83eb-579001da335b</subsheetid><display x="-210" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="54e39cf8-9167-44e0-aea5-08d102a67f52" name="Create Instance" type="SubSheetInfo"><subsheetid>99e648cc-a136-471c-8424-19071c0fd9e7</subsheetid><narrative>Creates an instance of Excel, returning a handle with which it can be retrieved using the global object method : GetInstance(handle).</narrative><display x="-255" y="-120" w="330" h="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="2eee0d2a-9595-449a-bbdc-8fb0c5153180" name="Close Instance" type="SubSheetInfo"><subsheetid>6ec3006a-6553-4526-b522-32526c4aa3cc</subsheetid><narrative>Closes the instance represented by the given handle, saving the changes or not as specified. Params: - handle : Number : The handle identifying the instance that should be closed; The default of 0 will close the 'current active' instance - ie. the last one accessed. Note that following the 'current active' instance being closed, the current instance will not be set. - Save Changes : Flag : True to save the instance's workbooks before closing; False to just close the instance. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. </narrative><display x="-255" y="-150" w="390" h="180" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="b394cfde-b1ec-4f16-b977-d1e1ffd337be" name="Start" type="Start"><subsheetid>6ec3006a-6553-4526-b522-32526c4aa3cc</subsheetid><loginhibit /><display x="15" y="-225" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance to be closed. Zero indicates the currently active instance." stage="handle" /><input type="flag" name="Save Changes" narrative="True to save the changes to the open workbooks on the instance, False to discard any changes. Default is False." stage="savechanges" /></inputs><onsuccess>b06ec4ea-540a-4321-a1f9-a645f288eb9e</onsuccess></stage><stage stageid="5d9b206b-bf58-47fe-806b-c2d6807d911e" name="End" type="End"><subsheetid>6ec3006a-6553-4526-b522-32526c4aa3cc</subsheetid><loginhibit /><display x="15" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="9798ad3a-b44f-4102-a9d1-0861103be2d8" name="Open Instance" type="SubSheetInfo"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><narrative>Opens a currently running instance of Excel with the given workbook name. If no workbook name is given, it opens the active instance of Excel. If there is no instance of Excel currently running, it will create a new one. Params: - WorkbookName : Text : should correspond to the workbook which should be opened - an empty value will cause the first activated instance of Excel to be opened. Returns: - handle : Number : The numeric handle with which this instance can be identified</narrative><display x="-210" y="-195" w="270" h="180" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="0d071afd-6ab3-43d1-ac0e-1951c7598b19" name="Start" type="Start"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="15" y="-270" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="Workbook Name" narrative="The name of the workbook which should be opened. An empty value indicates that the first activated instance of Excel should be opened." stage="workbookname" /><input type="flag" name="Enable Events?" narrative="Flag to indicate whether events (ie. macros) should be enabled on the given instance. Default is True" stage="Enable Events" /></inputs><onsuccess>a08aa147-8eee-4f21-a683-142cb1680af6</onsuccess></stage><stage stageid="754832af-1144-48ff-8ab0-bb6c86d3f78e" name="End" type="End"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="15" y="165" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="number" name="handle" narrative="The integer handle with which the instance can be identified in later actions." stage="handle" /></outputs></stage><stage stageid="6a0587c3-1640-4af9-9199-62382cc11cdb" name="Start" type="Start"><subsheetid>99e648cc-a136-471c-8424-19071c0fd9e7</subsheetid><loginhibit /><display x="-15" y="-165" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="flag" name="Enable Events" narrative="Flag to indicate that events should be enabled / disabled on the attached instance - defaulted to True" stage="Enable Events" /></inputs><onsuccess>c642c278-2fc8-4504-826c-25e0281a26af</onsuccess></stage><stage stageid="d337a2cf-1121-4619-a1b1-f7f19bea974e" name="End" type="End"><subsheetid>99e648cc-a136-471c-8424-19071c0fd9e7</subsheetid><loginhibit /><display x="-15" y="0" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="number" name="handle" narrative="An integer which can be used to identify the created instance in subsequent actions" stage="handle" /></outputs></stage><stage stageid="c642c278-2fc8-4504-826c-25e0281a26af" name="Create Instance" type="Code"><subsheetid>99e648cc-a136-471c-8424-19071c0fd9e7</subsheetid><loginhibit /><display x="-15" y="-105" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="number" name="handle" stage="handle" /></outputs><onsuccess>a13edde2-3883-4007-9719-92f0e1009ddd</onsuccess><code><![CDATA[ Dim excel as Object = CreateObject("Excel.Application") ' Create a GUID with which we can kill the instance later ' if we have to play hardball to get rid of it. excel.Caption = System.Guid.NewGuid().ToString().ToUpper() handle = GetHandle(excel)]]></code></stage><stage stageid="56408aa5-2607-4026-bbb0-ee39b8c304be" name="handle" type="Data"><subsheetid>99e648cc-a136-471c-8424-19071c0fd9e7</subsheetid><display x="-255" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="bb0ff5ea-0f21-4e70-a3b3-2eaf0baa3dc5" name="Set Current Instance" type="SubSheetInfo"><subsheetid>859e3c31-acbc-48dd-8535-ef2ce9385d70</subsheetid><narrative>Sets the "current active" instance to that specified. Params: - handle : Number : The handle of the instance that should be set as the current instance. The default of zero only has the effect of throwing an exception if no current instance is set, otherwise it's a no-op. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. </narrative><display x="-225" y="-135" w="330" h="150" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="773582ee-ed72-4483-9b24-9e4f66cf590e" name="Start" type="Start"><subsheetid>859e3c31-acbc-48dd-8535-ef2ce9385d70</subsheetid><loginhibit /><preconditions><condition narrative="" /></preconditions><display x="15" y="-195" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance which should be made the 'current' one. The default of zero indicates the current, er, 'current' one - ie. this action has no effect other than validating that there is a current instance." stage="handle" /></inputs><onsuccess>79986761-82ee-46d2-83d5-4e3375b886be</onsuccess></stage><stage stageid="b272722b-ab35-4a09-9082-3cc31a0999b5" name="End" type="End"><subsheetid>859e3c31-acbc-48dd-8535-ef2ce9385d70</subsheetid><loginhibit /><display x="15" y="-30" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="d7897c32-9be3-483a-bca8-3fee7d1af8b5" name="handle" type="Data"><subsheetid>859e3c31-acbc-48dd-8535-ef2ce9385d70</subsheetid><display x="-195" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="e3866da9-69bc-4edc-9173-0f9d0013190a" name="handle" type="Data"><subsheetid>6ec3006a-6553-4526-b522-32526c4aa3cc</subsheetid><display x="-210" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="7e31a12c-4578-4202-b034-a306f3ee679d" name="Close Instance" type="Code"><subsheetid>6ec3006a-6553-4526-b522-32526c4aa3cc</subsheetid><loginhibit /><display x="15" y="-75" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="flag" name="savechanges" expr="[savechanges]" /><input type="number" name="timeout" expr="[Timeout]" /></inputs><onsuccess>5d9b206b-bf58-47fe-806b-c2d6807d911e</onsuccess><code><![CDATA[ExecWithTimeout(Timeout,"Close Instance", Sub() CloseInstance(handle, savechanges))]]></code></stage><stage stageid="eaefcb8d-64bd-4782-a39c-6ea00bb157b2" name="CheckInstanceHandle" type="SubSheetInfo"><subsheetid>492548e8-2fa5-473e-9061-df8326d46e4c</subsheetid><narrative>Checks if the handle given can be used to access a valid instance. This means that the handle is a non-zero value which represents a handle, or it is zero and a 'current instance' is set (current instance is set every time an instance is created or accessed using GetInstance() - it may be set to Nothing if an instance is closed). - handle is the handle to check that it represents a valid instance Exceptions: - Bad Handle : If the given handle doesn't represent an instance</narrative><display x="-300" y="-120" w="390" h="150" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="19668af6-5fa9-48b7-9f6e-e2caf5795b69" name="Start" type="Start"><subsheetid>492548e8-2fa5-473e-9061-df8326d46e4c</subsheetid><loginhibit /><display x="-30" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle representing the instance." stage="handle" /></inputs><onsuccess>34b692da-278c-4018-96ec-a9d03f696b43</onsuccess></stage><stage stageid="a4c8054c-d063-42e0-8063-c8972459baa3" name="End" type="End"><subsheetid>492548e8-2fa5-473e-9061-df8326d46e4c</subsheetid><loginhibit /><display x="-30" y="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="b06ec4ea-540a-4321-a1f9-a645f288eb9e" name="CheckInstanceHandle" type="SubSheet"><subsheetid>6ec3006a-6553-4526-b522-32526c4aa3cc</subsheetid><loginhibit /><display x="15" y="-150" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><onsuccess>7e31a12c-4578-4202-b034-a306f3ee679d</onsuccess><processid>492548e8-2fa5-473e-9061-df8326d46e4c</processid></stage><stage stageid="34b692da-278c-4018-96ec-a9d03f696b43" name="Check Handle" type="Code"><subsheetid>492548e8-2fa5-473e-9061-df8326d46e4c</subsheetid><loginhibit /><display x="-30" y="-75" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><outputs><output type="flag" name="HandleMissing" stage="HandleMissing" /></outputs><onsuccess>a7383095-97e9-4fa8-90e0-ad186e9df285</onsuccess><code><![CDATA[ ' Just ensure that the handle references a valid instance HandleMissing = (GetInstance(handle) is Nothing)]]></code></stage><stage stageid="1468c19b-a6a0-44e0-b096-5f325448f3fb" name="handle" type="Data"><subsheetid>492548e8-2fa5-473e-9061-df8326d46e4c</subsheetid><display x="-195" y="-15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="52d17605-ad90-4a36-aa9d-47e5418dba04" name="HandleMissing" type="Data"><subsheetid>492548e8-2fa5-473e-9061-df8326d46e4c</subsheetid><display x="-195" y="30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="a7383095-97e9-4fa8-90e0-ad186e9df285" name="Is Handle Missing?" type="Decision"><subsheetid>492548e8-2fa5-473e-9061-df8326d46e4c</subsheetid><loginhibit /><display x="-30" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[HandleMissing]" /><ontrue>8b5e76e6-a81e-4377-b161-1bef1ff3d753</ontrue><onfalse>a4c8054c-d063-42e0-8063-c8972459baa3</onfalse></stage><stage stageid="8b5e76e6-a81e-4377-b161-1bef1ff3d753" name="Bad Instance Handle" type="Exception"><subsheetid>492548e8-2fa5-473e-9061-df8326d46e4c</subsheetid><display x="135" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="Bad Handle" detail=""Handle: " & [handle] & " does not correspond to an Excel Instance"" /></stage><stage stageid="79986761-82ee-46d2-83d5-4e3375b886be" name="CheckInstanceHandle" type="SubSheet"><subsheetid>859e3c31-acbc-48dd-8535-ef2ce9385d70</subsheetid><loginhibit /><display x="15" y="-120" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><onsuccess>b272722b-ab35-4a09-9082-3cc31a0999b5</onsuccess><processid>492548e8-2fa5-473e-9061-df8326d46e4c</processid></stage><stage stageid="2db56ca3-8def-419f-a3e3-ac8408915c69" name="Open Named Instance" type="Code"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="15" y="-135" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="WorkbookName" expr="[workbookname]" /><input type="number" name="timeout" expr="[Timeout]" /></inputs><outputs><output type="number" name="handle" stage="handle" /></outputs><onsuccess>add1def4-fc64-4534-bbb0-d3ac07611a85</onsuccess><code><![CDATA[Dim obj = ExecWithTimeout(Timeout, "Open Named Instance", Function() OpenNamedObjectAA(WorkbookName)) handle = GetHandle(obj)]]></code></stage><stage stageid="6e2accad-a08b-4b28-9551-f44a9a291607" name="handle" type="Data"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><display x="-210" y="-75" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="fe8e6a89-2552-4e75-9d44-72240a365783" name="workbookname" type="Data"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><display x="-210" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="a08aa147-8eee-4f21-a683-142cb1680af6" name="Is WorkbookName empty?" type="Decision"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="15" y="-210" w="150" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="Trim([workbookname])=""" /><ontrue>aaa7ff33-69b5-4636-8766-e0556ee48bec</ontrue><onfalse>2db56ca3-8def-419f-a3e3-ac8408915c69</onfalse></stage><stage stageid="aaa7ff33-69b5-4636-8766-e0556ee48bec" name="Open Arbitrary Instance" type="Code"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="195" y="-210" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Timeout" expr="[Timeout]" /></inputs><outputs><output type="number" name="handle" stage="handle" /></outputs><onsuccess>51d7d624-e8bf-42b7-afdd-8d090b584865</onsuccess><code><![CDATA[Dim obj As Object = Nothing Try obj = ExecWithTimeout(timeout,"Get Object", Function() GetObject(,"Excel.Application")) Catch ex As TimeoutException mLastException = ex Throw End Try If obj Is Nothing Then Throw New Exception("Could not Get Object") ' GetObject may return an unusable wrapper (possibly if instance is shutting ' down) which results in a "COM target does not implement IDispatch" exception ' when accessing members of the object. If reading the EnableEvents property ' results in an exception, the recover stage will run and a new instance will ' be created instead. Dim tempEnableEvents = obj.EnableEvents handle = GetHandle(obj)]]></code></stage><stage stageid="fba0fa7c-4ed5-4652-b4ae-08770f5f3867" name="No Open Instances" type="Recover"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="375" y="-210" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>9474db50-6935-47fa-b862-4aa1a49143f8</onsuccess></stage><stage stageid="df0b2b99-8c10-4cf4-9d2d-c3ccf515c960" name="Carry On, Bertram" type="Resume"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="375" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>7fb1ba2f-64f1-417b-9b97-479efb954a9d</onsuccess></stage><stage stageid="a6205e66-5e1f-4360-86a2-8f1325751c3c" name="Create Instance" type="SubSheet"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="375" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="flag" name="Enable Events" narrative="Flag to indicate that events should be enabled / disabled on the attached instance - defaulted to True" expr="True" /></inputs><outputs><output type="number" name="handle" narrative="An integer which can be used to identify the created instance in subsequent actions" stage="handle" /></outputs><onsuccess>df0b2b99-8c10-4cf4-9d2d-c3ccf515c960</onsuccess><processid>99e648cc-a136-471c-8424-19071c0fd9e7</processid></stage><stage stageid="852ff62f-6d2b-4031-b675-ec155fd88908" name="CheckInstanceHandle" type="SubSheet"><subsheetid>73b8ddb4-b679-4697-b3c4-79ce833a9456</subsheetid><loginhibit /><display x="-15" y="-300" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><onsuccess>232e4bda-508e-44c7-8adb-315ce0fab8af</onsuccess><processid>492548e8-2fa5-473e-9061-df8326d46e4c</processid></stage><stage stageid="59ebf811-1faf-4486-8630-6d2de19027f5" name="CheckType" type="Decision"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="375" y="-75" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="ExceptionType()="Internal"" /><ontrue>a6205e66-5e1f-4360-86a2-8f1325751c3c</ontrue><onfalse>567674ba-270a-4107-ada5-1dae59125522</onfalse></stage><stage stageid="567674ba-270a-4107-ada5-1dae59125522" name="RethrowException" type="Exception"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><display x="570" y="-75" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception localized="yes" type="" detail="" usecurrent="yes" /></stage><stage stageid="9e0df7e0-ab34-4a97-9f69-db66c88ff5f4" name="CheckInstanceHandle" type="SubSheet"><subsheetid>2fb01e3f-e275-43bc-83eb-579001da335b</subsheetid><loginhibit /><display x="15" y="-195" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><onsuccess>41c51e08-6c3e-4cbc-bc30-31936476aa7d</onsuccess><processid>492548e8-2fa5-473e-9061-df8326d46e4c</processid></stage><stage stageid="4a034863-88fc-4111-a656-18471e002741" name="workbookname" type="Data"><subsheetid>6632ed99-8751-4c2a-ad00-3cc016300e08</subsheetid><loginhibit /><narrative>The name of the workbook</narrative><display x="-240" y="0" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="366f8bd4-fafd-47cc-98a3-0afb7d697fe9" name="ActivateWorkbook" type="Code"><subsheetid>6632ed99-8751-4c2a-ad00-3cc016300e08</subsheetid><loginhibit /><display x="45" y="-90" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="name" expr="[workbookname]" /></inputs><onsuccess>f8b84adb-3239-4125-af8d-4b1d02c950a6</onsuccess><code><![CDATA[ GetWorkbook(handle,name).Activate()]]></code></stage><stage stageid="e74de56c-16cf-4cd7-8ecf-fabdf05e7311" name="handle" type="Data"><subsheetid>6e7cb0ad-5910-4065-aab2-2919726bae39</subsheetid><display x="-195" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="e45f2d66-35c1-40fd-a729-754cfabbb5ab" name="SaveWorkbook" type="Code"><subsheetid>6e7cb0ad-5910-4065-aab2-2919726bae39</subsheetid><loginhibit /><display x="15" y="-60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /><input type="number" name="timeout" expr="[Timeout]" /></inputs><onsuccess>4c75715c-7a4a-491b-804f-261ee86fcd95</onsuccess><code><![CDATA[ExecWithTimeout(Timeout, "Save Workbook", Sub() Dim wb as Object = GetWorkbook(handle,workbookname) Dim excel as Object = wb.Application excel.DisplayAlerts = False Invoke(wb, "Save") excel.DisplayAlerts = True End Sub)]]></code></stage><stage stageid="8ba3f3c5-2585-44db-9393-a681e9ff1111" name="workbookname" type="Data"><subsheetid>6e7cb0ad-5910-4065-aab2-2919726bae39</subsheetid><display x="-195" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="6bc9d285-c937-4336-89b3-aa7acf379075" name="Start" type="Start"><subsheetid>21a53e34-8128-41cb-ad73-17250758ff23</subsheetid><loginhibit /><display x="15" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the workbook which should be saved resides. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Workbook Name" narrative="The name of the workbook which should be saved" stage="workbookname" /><input type="text" name="Filename" narrative="The full path and filename to which the workbook should be saved." stage="filename" /></inputs><onsuccess>7fa4c0ab-6c38-4a55-915a-48e7ce529979</onsuccess></stage><stage stageid="a6943793-fb0e-491c-bdc1-ccf04ee31e6d" name="workbookname" type="Data"><subsheetid>21a53e34-8128-41cb-ad73-17250758ff23</subsheetid><display x="-255" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="8b526d9f-c7bd-4190-8c33-a6f5ad7982fa" name="SaveWorkbookAs" type="Code"><subsheetid>21a53e34-8128-41cb-ad73-17250758ff23</subsheetid><loginhibit /><display x="15" y="-15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /><input type="text" name="filename" expr="[filename]" /><input type="number" name="Timeout" expr="[Timeout]" /></inputs><outputs><output type="text" name="newworkbookname" stage="newworkbookname" /></outputs><onsuccess>b4f79caf-dea6-4a9a-95f0-0c05bea8b485</onsuccess><code><![CDATA[newworkbookname = ExecWithTimeout(Timeout, "Save Workbook As", Function() Dim wb as Object = GetWorkbook(handle,workbookname) Dim excel as Object = wb.Application excel.DisplayAlerts = False wb.SaveAs(filename) excel.DisplayAlerts = True Return wb.Name End Function)]]></code></stage><stage stageid="a7fd5308-fe75-448e-99ad-e104521ee580" name="CheckInstanceAndWorkbook" type="SubSheetInfo"><subsheetid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</subsheetid><narrative>Checks the instance and workbook values, throwing an exception if they are invalid. Params: - instance : Number : The integer value representing an Excel instance. The default value of zero represents the last activated instance. - Workbook Name : Text : The name of the workbook on the instance to check. An empty string represents the 'active' workbook. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance.</narrative><display x="-240" y="-150" w="360" h="180" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="d69e69ce-7251-40e1-b779-c9951ee36cbb" name="Start" type="Start"><subsheetid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</subsheetid><loginhibit /><preconditions><condition narrative="" /></preconditions><display x="15" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer representing an Excel instance" stage="handle" /><input type="text" name="workbookname" narrative="The name of the workbook to check - "" to indicate the active workbook" stage="workbookname" /></inputs><onsuccess>16e7e153-e022-4c0b-9af2-ac69b52f855a</onsuccess></stage><stage stageid="bf3ac1a2-7f2a-4071-89c6-73cfa8f8c60d" name="End" type="End"><subsheetid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</subsheetid><loginhibit /><display x="15" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="16e7e153-e022-4c0b-9af2-ac69b52f855a" name="CheckInstanceHandle" type="SubSheet"><subsheetid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</subsheetid><loginhibit /><display x="15" y="-90" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><onsuccess>d4997ba5-8e1f-4585-a093-376eb725f14d</onsuccess><processid>492548e8-2fa5-473e-9061-df8326d46e4c</processid></stage><stage stageid="b6c9fba5-0c8e-4e66-9cf2-8f2f1e5f6118" name="Workbook Found?" type="Decision"><subsheetid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</subsheetid><loginhibit /><display x="15" y="0" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[workbookfound]" /><ontrue>bf3ac1a2-7f2a-4071-89c6-73cfa8f8c60d</ontrue><onfalse>62e3710c-2e7e-4507-a49b-0009b3585ba3</onfalse></stage><stage stageid="62e3710c-2e7e-4507-a49b-0009b3585ba3" name="Workbook Not Found" type="Exception"><subsheetid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</subsheetid><narrative>Thrown when a workbook name was not found</narrative><display x="195" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="Workbook Not Found" detail=""Workbook named: " & [workbookname] & " not found in instance: " & [handle]" /></stage><stage stageid="c3051222-78b2-48d6-9813-d71f854c5e81" name="handle" type="Data"><subsheetid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</subsheetid><display x="-195" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="6bcb687a-3390-4a83-8690-fba44345b1a8" name="workbookname" type="Data"><subsheetid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</subsheetid><loginhibit /><narrative>The name of the workbook</narrative><display x="-195" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="ba694738-8f03-4a1c-a7b1-d946dc55c028" name="workbookfound" type="Data"><subsheetid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</subsheetid><loginhibit /><display x="-195" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>True</initialvalue><private /><alwaysinit /></stage><stage stageid="d4997ba5-8e1f-4585-a093-376eb725f14d" name="CheckWorkbook" type="Code"><subsheetid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</subsheetid><loginhibit /><display x="15" y="-45" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /><input type="number" name="timeout" expr="[Timeout]" /></inputs><outputs><output type="flag" name="workbookfound" stage="workbookfound" /></outputs><onsuccess>b6c9fba5-0c8e-4e66-9cf2-8f2f1e5f6118</onsuccess><code><![CDATA[ Try ExecWithTimeout(timeout,"Get Workbook", Sub() GetWorkbook(handle,workbookname)) workbookfound = True Catch ex as Exception If ex.Message.IndexOf("DISP_E_BADINDEX")<>-1 Then workbookfound = False Else Throw ex End If End Try]]></code></stage><stage stageid="ab6f627b-d630-4bdd-b840-7aac26b5806f" name="CheckInstanceAndWorkbook" type="SubSheet"><subsheetid>6e7cb0ad-5910-4065-aab2-2919726bae39</subsheetid><loginhibit /><display x="15" y="-120" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /></inputs><onsuccess>e45f2d66-35c1-40fd-a729-754cfabbb5ab</onsuccess><processid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</processid></stage><stage stageid="7fa4c0ab-6c38-4a55-915a-48e7ce529979" name="CheckInstanceAndWorkbook" type="SubSheet"><subsheetid>21a53e34-8128-41cb-ad73-17250758ff23</subsheetid><loginhibit /><display x="15" y="-75" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /></inputs><onsuccess>8b526d9f-c7bd-4190-8c33-a6f5ad7982fa</onsuccess><processid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</processid></stage><stage stageid="d52e7a12-1a97-4bcf-9014-5a4ad93aa054" name="Close Workbook" type="Code"><subsheetid>6ccaae8b-c06f-45c8-8772-835218881458</subsheetid><loginhibit /><display x="-255" y="150" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="name" expr="[workbookname]" /><input type="number" name="timeout" expr="[Timeout]" /></inputs><onsuccess>5f23862f-bb67-4712-ade2-d8d62befeb7b</onsuccess><code><![CDATA[ExecWithTimeout(Timeout, "Close Workbook", Sub() Dim wb as Object = GetWorkbook(handle,name) Dim app as Object = wb.Application app.DisplayAlerts = False wb.Close(False) app.DisplayAlerts = True End Sub)]]></code></stage><stage stageid="3a83f920-ccd5-4dc3-95ee-4c5a195c5191" name="handle" type="Data"><subsheetid>6ccaae8b-c06f-45c8-8772-835218881458</subsheetid><display x="-465" y="120" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="7b233620-de4e-40ff-9a99-af09b1574d08" name="workbookname" type="Data"><subsheetid>6ccaae8b-c06f-45c8-8772-835218881458</subsheetid><display x="-465" y="165" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="85080efc-4429-45d0-9248-dfcceaa60a27" name="Start" type="Start"><subsheetid>6ccaae8b-c06f-45c8-8772-835218881458</subsheetid><loginhibit /><preconditions><condition narrative="" /></preconditions><display x="-255" y="0" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the workbook which should be closed resides. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Workbook Name" narrative="The name of the workbook which should be closed." stage="workbookname" /><input type="flag" name="Save Data" narrative="True to save the data before closing the workbook; The default of False will discard any changes before closing the workbook." stage="savedata" /></inputs><onsuccess>52c31124-7463-40b9-8d24-9ffebe12e167</onsuccess></stage><stage stageid="b481dbd1-022d-42b5-a2bc-5bfbbc233772" name="savedata" type="Data"><subsheetid>6ccaae8b-c06f-45c8-8772-835218881458</subsheetid><loginhibit /><display x="-465" y="210" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>True</initialvalue><private /><alwaysinit /></stage><stage stageid="52c31124-7463-40b9-8d24-9ffebe12e167" name="Save Data?" type="Decision"><subsheetid>6ccaae8b-c06f-45c8-8772-835218881458</subsheetid><loginhibit /><display x="-255" y="45" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[savedata]" /><ontrue>16f6c60c-721b-44be-9e97-b5b518e0f360</ontrue><onfalse>68e0d10e-5b8a-4ccb-a42b-67192ce2ede1</onfalse></stage><stage stageid="16f6c60c-721b-44be-9e97-b5b518e0f360" name="Save Workbook" type="SubSheet"><subsheetid>6ccaae8b-c06f-45c8-8772-835218881458</subsheetid><loginhibit /><display x="-120" y="45" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="Workbook Name" expr="[workbookname]" /></inputs><onsuccess>cf877504-31ed-4e77-b72f-b00469c37fc7</onsuccess><processid>6e7cb0ad-5910-4065-aab2-2919726bae39</processid></stage><stage stageid="68e0d10e-5b8a-4ccb-a42b-67192ce2ede1" name="CheckInstanceAndWorkbook" type="SubSheet"><subsheetid>6ccaae8b-c06f-45c8-8772-835218881458</subsheetid><loginhibit /><display x="-255" y="90" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /></inputs><onsuccess>d52e7a12-1a97-4bcf-9014-5a4ad93aa054</onsuccess><processid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</processid></stage><stage stageid="cf877504-31ed-4e77-b72f-b00469c37fc7" name="anchor1" type="Anchor"><subsheetid>6ccaae8b-c06f-45c8-8772-835218881458</subsheetid><loginhibit /><display x="-120" y="150" w="10" h="10" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>d52e7a12-1a97-4bcf-9014-5a4ad93aa054</onsuccess></stage><stage stageid="cdb03710-27a7-4412-964a-73e4b9bd1a07" name="noteybenny" type="Note"><subsheetid>6ccaae8b-c06f-45c8-8772-835218881458</subsheetid><loginhibit /><narrative>Note: CheckInstanceAndWorkbook is done as part of SaveWorkbook, so no need to do it again</narrative><display x="15" y="60" w="180" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="f39e78b7-d81a-43de-af4f-ea3ce7a918a2" name="handle" type="Data"><subsheetid>733c2840-8162-465a-a8f2-7d023087c369</subsheetid><display x="-300" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="1f02e77b-3ca1-40a7-a64b-35fdad519172" name="workbookname" type="Data"><subsheetid>733c2840-8162-465a-a8f2-7d023087c369</subsheetid><display x="-300" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="6344b53e-9777-411e-bab1-aee5633bbc7d" name="CheckInstanceAndWorkbook" type="SubSheet"><subsheetid>6632ed99-8751-4c2a-ad00-3cc016300e08</subsheetid><loginhibit /><display x="45" y="-165" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /></inputs><onsuccess>366f8bd4-fafd-47cc-98a3-0afb7d697fe9</onsuccess><processid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</processid></stage><stage stageid="ba48be23-80aa-4b44-beef-dbc6a7fb5901" name="VerifyFileExists" type="SubSheetInfo"><subsheetid>41a07606-d51b-4fe3-a076-7a77a4ca2cde</subsheetid><narrative>Checks if the given file exists. Params: - File name : Text : Path to the file to check Exceptions: - File Not Found : If the given file does not exist or is not a file.</narrative><display x="-210" y="-120" w="240" h="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="0c6df86d-8ca7-4778-adeb-2c570998768f" name="Start" type="Start"><subsheetid>41a07606-d51b-4fe3-a076-7a77a4ca2cde</subsheetid><loginhibit /><display x="-15" y="-165" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="filename" narrative="The filename to check to ensure it exists." stage="filename" /></inputs><onsuccess>e28c5aa8-d587-4390-843e-b97c32c2cdb8</onsuccess></stage><stage stageid="d465101e-fa27-4434-8413-515e331d1389" name="End" type="End"><subsheetid>41a07606-d51b-4fe3-a076-7a77a4ca2cde</subsheetid><loginhibit /><display x="-15" y="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="8d315224-d32b-4a85-aae0-3ee4d3b98c9c" name="filename" type="Data"><subsheetid>41a07606-d51b-4fe3-a076-7a77a4ca2cde</subsheetid><display x="-195" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="86877e71-923f-4480-9b41-a5a7f4dc60a5" name="fileexists" type="Data"><subsheetid>41a07606-d51b-4fe3-a076-7a77a4ca2cde</subsheetid><loginhibit /><display x="-195" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>False</initialvalue><private /><alwaysinit /></stage><stage stageid="e28c5aa8-d587-4390-843e-b97c32c2cdb8" name="File Exists?" type="Code"><subsheetid>41a07606-d51b-4fe3-a076-7a77a4ca2cde</subsheetid><loginhibit /><display x="-15" y="-105" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="filename" expr="[filename]" /></inputs><outputs><output type="flag" name="fileexists" stage="fileexists" /></outputs><onsuccess>d43bfe27-76d7-4542-b7ad-ba696468713e</onsuccess><code><![CDATA[ fileexists = File.Exists(filename)]]></code></stage><stage stageid="d43bfe27-76d7-4542-b7ad-ba696468713e" name="Does File Exist?" type="Decision"><subsheetid>41a07606-d51b-4fe3-a076-7a77a4ca2cde</subsheetid><loginhibit /><display x="-15" y="-45" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[fileexists]" /><ontrue>d465101e-fa27-4434-8413-515e331d1389</ontrue><onfalse>11a4a0e7-8810-493b-9409-df70ca4dc5b2</onfalse></stage><stage stageid="11a4a0e7-8810-493b-9409-df70ca4dc5b2" name="File Not Found" type="Exception"><subsheetid>41a07606-d51b-4fe3-a076-7a77a4ca2cde</subsheetid><display x="135" y="-45" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="File Not Found" detail=""File: " & [filename] & " does not exist or is not a file"" /></stage><stage stageid="41c51e08-6c3e-4cbc-bc30-31936476aa7d" name="VerifyFileExists" type="SubSheet"><subsheetid>2fb01e3f-e275-43bc-83eb-579001da335b</subsheetid><loginhibit /><display x="15" y="-135" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="filename" expr="[filename]" /></inputs><onsuccess>f308d1c5-88b0-455a-bff7-8163c95d1eab</onsuccess><processid>41a07606-d51b-4fe3-a076-7a77a4ca2cde</processid></stage><stage stageid="60533ca6-ea95-4425-b684-87e7517782aa" name="Start" type="Start"><subsheetid>733c2840-8162-465a-a8f2-7d023087c369</subsheetid><loginhibit /><display x="15" y="-225" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the worksheet which should be activated resides. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Workbook Name" narrative="The name of the workbook in which the sheet exists - The default empty value indicates the currently active workbook on the specified instance." stage="workbookname" /><input type="text" name="Worksheet Name" narrative="The name of the sheet which should be activated. The default empty text value indicates that the currently active sheet should be, er, activated, making this a no-op." stage="worksheetname" /><input type="flag" name="Create If Missing?" narrative="True to create the sheet if it isn't present on the specified workbook; False to not do so." stage="createifmissing" /></inputs><onsuccess>b5d5c5b0-1e3b-438b-b988-6058174ec5ba</onsuccess></stage><stage stageid="63d363e1-c78b-4332-815c-06f9d6f7a7df" name="OpenWorksheet" type="Code"><subsheetid>733c2840-8162-465a-a8f2-7d023087c369</subsheetid><loginhibit /><display x="15" y="-105" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /><input type="text" name="worksheetname" expr="[worksheetname]" /><input type="flag" name="createifmissing" expr="[createifmissing]" /></inputs><outputs><output type="flag" name="sheetexists" stage="sheetexists" /></outputs><onsuccess>3a854b87-0e5a-46dd-8181-a58f97555aa8</onsuccess><code><![CDATA[ Dim ws as Object = GetWorksheet(handle,workbookname,worksheetname,createifmissing) sheetexists = ws IsNot Nothing If sheetexists then ws.Activate()]]></code></stage><stage stageid="b5d5c5b0-1e3b-438b-b988-6058174ec5ba" name="CheckInstanceAndWorkbook" type="SubSheet"><subsheetid>733c2840-8162-465a-a8f2-7d023087c369</subsheetid><loginhibit /><display x="15" y="-165" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /></inputs><onsuccess>63d363e1-c78b-4332-815c-06f9d6f7a7df</onsuccess><processid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</processid></stage><stage stageid="1dccafb3-fd07-4362-b343-e87c1a67e83e" name="worksheetname" type="Data"><subsheetid>733c2840-8162-465a-a8f2-7d023087c369</subsheetid><display x="-180" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="6b35d569-0eb2-4c01-bb88-e5f7c41bde81" name="End" type="End"><subsheetid>37a2442f-8e22-4749-8b44-4ef2980f28a6</subsheetid><loginhibit /><display x="15" y="105" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="fab4ac4b-d2f7-4f1c-a0c3-d6dd0cd01f9b" name="handle" type="Data"><subsheetid>37a2442f-8e22-4749-8b44-4ef2980f28a6</subsheetid><display x="-195" y="0" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="60f1e726-ab7f-437a-8bda-36148238d510" name="workbookname" type="Data"><subsheetid>37a2442f-8e22-4749-8b44-4ef2980f28a6</subsheetid><display x="-195" y="45" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="13ac609e-b9ca-4a72-907c-d7656496f5ab" name="Start" type="Start"><subsheetid>37a2442f-8e22-4749-8b44-4ef2980f28a6</subsheetid><loginhibit /><display x="15" y="-195" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the worksheet which should be deleted resides. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Workbook Name" narrative="The name of the workbook which contains the sheet to be deleted. The default empty value indicates the currently active workbook on the specified instance." stage="workbookname" /><input type="text" name="Worksheet Name" narrative="The name of the worksheet to be deleted. The default empty value indicates the currently active worksheet." stage="worksheetname" /></inputs><onsuccess>5346c305-4024-4d1d-8806-c1b20f16c10d</onsuccess></stage><stage stageid="982dd82e-af43-49cb-a4b1-58da1ccfeb33" name="Delete Worksheet" type="Code"><subsheetid>37a2442f-8e22-4749-8b44-4ef2980f28a6</subsheetid><loginhibit /><display x="15" y="-60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /><input type="text" name="worksheetname" expr="[worksheetname]" /></inputs><outputs><output type="flag" name="sheetexisted" stage="sheetexisted" /></outputs><onsuccess>56c2259b-9d71-4364-bede-79b4af1e3e96</onsuccess><code><![CDATA[ Dim Inst As Object = GetInstance(handle) Inst.DisplayAlerts = False Dim ws as Object = GetWorksheet(handle,workbookname,worksheetname,False) sheetexisted = ws IsNot Nothing If sheetexisted Then ws.Delete() Inst.DisplayAlerts = True]]></code></stage><stage stageid="5346c305-4024-4d1d-8806-c1b20f16c10d" name="CheckInstanceAndWorkbook" type="SubSheet"><subsheetid>37a2442f-8e22-4749-8b44-4ef2980f28a6</subsheetid><loginhibit /><display x="15" y="-135" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /></inputs><onsuccess>982dd82e-af43-49cb-a4b1-58da1ccfeb33</onsuccess><processid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</processid></stage><stage stageid="6ca6d1da-9270-43f8-89d4-c0ece0a353cb" name="worksheetname" type="Data"><subsheetid>37a2442f-8e22-4749-8b44-4ef2980f28a6</subsheetid><display x="-195" y="90" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="ae9d880b-4f92-4620-94e8-36d06f4e2181" name="Start" type="Start"><subsheetid>0e031661-2f5e-4cb2-949b-97babe59ff81</subsheetid><loginhibit /><display x="15" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance from which the required cell value should be retrieved. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Cell Reference" narrative="The cell reference indicating which cell's value should be retrieved. An empty value indicates that the currently active cell's value should be retrieved." stage="cellref" /></inputs><onsuccess>9a734ecf-7e58-4aa4-b7ff-5aa4494ec687</onsuccess></stage><stage stageid="ca24190a-a9cb-4c37-b5d2-78bcd838ef40" name="End" type="End"><subsheetid>0e031661-2f5e-4cb2-949b-97babe59ff81</subsheetid><loginhibit /><display x="15" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="Value" narrative="The (unformatted) value from the required cell." stage="value" /></outputs></stage><stage stageid="b659eb08-bf67-463a-a8cc-556b152d8032" name="cellref" type="Data"><subsheetid>0e031661-2f5e-4cb2-949b-97babe59ff81</subsheetid><display x="-195" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="257d1cf8-2a6f-47d2-88ee-1d0a125cb27d" name="value" type="Data"><subsheetid>0e031661-2f5e-4cb2-949b-97babe59ff81</subsheetid><display x="-195" y="60" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="a04a5ea1-798c-4659-ac77-0c966c305cba" name="Get Cell Value" type="Code"><subsheetid>0e031661-2f5e-4cb2-949b-97babe59ff81</subsheetid><loginhibit /><display x="15" y="0" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="cellref" expr="[cellref]" /></inputs><outputs><output type="text" name="value" stage="value" /></outputs><onsuccess>ca24190a-a9cb-4c37-b5d2-78bcd838ef40</onsuccess><code><![CDATA[ Dim cellVal as String = GetInstance(handle).ActiveCell.Value value = IIf(cellVal Is Nothing, "", cellVal)]]></code></stage><stage stageid="39135f99-dd54-4a2b-bff2-555714753a6d" name="Go To Cell" type="SubSheet"><subsheetid>0e031661-2f5e-4cb2-949b-97babe59ff81</subsheetid><loginhibit /><display x="15" y="-45" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required cell should be navigated to. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Cell Reference" narrative="The cell reference on the currently active sheet within the specified instance which should be navigated to." expr="[cellref]" /></inputs><onsuccess>a04a5ea1-798c-4659-ac77-0c966c305cba</onsuccess><processid>ed502669-4207-4c88-895d-8c58ec321578</processid></stage><stage stageid="c533ffd2-866d-4944-82be-7e6a6ede4c9a" name="handle" type="Data"><subsheetid>0e031661-2f5e-4cb2-949b-97babe59ff81</subsheetid><display x="-195" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="e3fe8fb5-4290-4e6e-8d8f-780f47e78d27" name="workbookname" type="Data"><subsheetid>73b8ddb4-b679-4697-b3c4-79ce833a9456</subsheetid><display x="-240" y="-120" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="5a7dc88f-16d6-41f8-a4f1-4ca8921bf024" name="Get Worksheet As Collection" type="SubSheetInfo"><subsheetid>8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30</subsheetid><narrative>Gets the current worksheet into a collection. This will read the worksheet and store the contents into the collection. The first row will be treated as the column names and will be used as the column names in the generated collection. Params: - handle : Number : The integer identifying the instance in which the worksheet resides. Default (0) indicates the current instance. - Workbook Name : Text : The name of the workbook on which the sheet resides. Default ("") indicates the active workbook on the instance. - Worksheet Name : Text : The name of the worksheet which is required as a collection. Default ("") indicates the active sheet within the workbook. Output: Data - Collection - The data from the worksheet. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance. - Worksheet Not Found : If the specified worksheet does not exist on the specified workbook. Office 2013 onwards There are known issues when attempting to read and write data using the Excel VBO with the application set to run in background mode. These issues can be overcome by using the Show action</narrative><display x="-285" y="-195" w="420" h="270" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="cf5b0880-2cac-4221-946a-e4e3d7f0bc99" name="End" type="End"><subsheetid>8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30</subsheetid><loginhibit /><display x="15" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="collection" name="Data" narrative="The collection containing the data from the specified worksheet - the column IDs will be gleaned from the first row on the sheet being retrieved." stage="worksheetcollection" /></outputs></stage><stage stageid="c42e68de-468d-4aac-bcd2-283b9f578565" name="handle" type="Data"><subsheetid>8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30</subsheetid><display x="-195" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="ed8d683e-8efe-426c-8be6-85136cbdf337" name="workbookname" type="Data"><subsheetid>8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30</subsheetid><display x="-195" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="14362f26-4336-4848-adf6-2e710eb2a69d" name="Start" type="Start"><subsheetid>8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30</subsheetid><loginhibit /><display x="15" y="-285" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the worksheet which should be retrieved resides. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Workbook Name" narrative="The name of the workbook which contains the sheet required. The default empty text indicates the currently active workbook on the specified instance." stage="workbookname" /><input type="text" name="Worksheet Name" narrative="The name of the worksheet within the specified workbook which should be written to a collection. The default empty text indicates the currently active worksheet within the specified workbook." stage="worksheetname" /><input type="text" name="Fetch Data With Method" narrative="The method used to fetch data from cells in the worksheet. Options include Text, Value, and Value2. The default indicates Value will be used." stage="fetchDataWithMethod" /></inputs><onsuccess>23c90658-57ef-456a-92fa-970b0161d0f8</onsuccess></stage><stage stageid="36a8c859-cf71-4b54-b7ed-317997b94589" name="GetWorksheetAsCollection" type="Code"><subsheetid>8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30</subsheetid><loginhibit /><display x="15" y="-120" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /><input type="text" name="worksheetname" expr="[worksheetname]" /><input type="text" name="fetchDataWithMethod" expr="[fetchDataWithMethod]" /></inputs><outputs><output type="collection" name="worksheetcollection" stage="worksheetcollection" /><output type="flag" name="sheetexists" stage="sheetexists" /></outputs><onsuccess>b6d0da26-0322-4b43-b1d5-304466ff29fb</onsuccess><code><![CDATA[ Dim ws as Object = _ GetWorksheet(handle, workbookname, worksheetname, False) ' Do we have a sheet? sheetexists = ws IsNot Nothing ' No sheet? No entry. If Not sheetexists Then Return ws.Activate() worksheetCollection = GetWorksheetUsedRangeAsDataTable(ws.UsedRange, True, fetchDataWithMethod) ]]></code></stage><stage stageid="23c90658-57ef-456a-92fa-970b0161d0f8" name="CheckInstanceAndWorkbook" type="SubSheet"><subsheetid>8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30</subsheetid><loginhibit /><display x="15" y="-210" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /></inputs><onsuccess>36a8c859-cf71-4b54-b7ed-317997b94589</onsuccess><processid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</processid></stage><stage stageid="51a0a405-79a5-4a53-9a36-a40b08481389" name="worksheetname" type="Data"><subsheetid>8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30</subsheetid><display x="-195" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="c4c01041-da7a-4cd3-9990-a0a236064fa5" name="worksheetcollection" type="Collection"><subsheetid>8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30</subsheetid><display x="-345" y="-15" w="150" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>collection</datatype><private /><alwaysinit /></stage><stage stageid="9b8dd3a0-045b-4019-b977-8716d12d92c6" name="workbookname" type="Data"><subsheetid>2fb01e3f-e275-43bc-83eb-579001da335b</subsheetid><loginhibit /><display x="-210" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="3ba94499-d376-4a0b-9486-f4bced0a6a23" name="Close All Instances" type="SubSheetInfo"><subsheetid>feb8ce9f-299e-4152-85a1-354a5f9d995c</subsheetid><narrative>Closes all instances of excel which have been opened by this business object, either through "Create Instance" or "Open Instance" and which have not been discarded through "Close Instance" or "Release Instance"</narrative><display x="-195" y="-105" w="210" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="e8745127-ee68-4c60-8b52-0b68e91835bf" name="Start" type="Start"><subsheetid>feb8ce9f-299e-4152-85a1-354a5f9d995c</subsheetid><loginhibit /><preconditions><condition narrative="" /></preconditions><display x="15" y="-165" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>8f8060c8-cea7-41c9-93c1-b181ca345fa9</onsuccess></stage><stage stageid="85215f92-002d-4d9c-8fe7-652c149d0206" name="End" type="End"><subsheetid>feb8ce9f-299e-4152-85a1-354a5f9d995c</subsheetid><loginhibit /><display x="15" y="-45" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="8f8060c8-cea7-41c9-93c1-b181ca345fa9" name="CloseAllInstances" type="Code"><subsheetid>feb8ce9f-299e-4152-85a1-354a5f9d995c</subsheetid><loginhibit /><display x="15" y="-105" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>85215f92-002d-4d9c-8fe7-652c149d0206</onsuccess><code><![CDATA[ Dim clone as Dictionary(Of Integer,Object) = _ new Dictionary(Of Integer,Object)(HandleMap) For Each Handle As Integer In clone.Keys CloseInstance(Handle,False) Next]]></code></stage><stage stageid="15437c28-7f56-4c1b-b98a-769b875b9d57" name="Find Next Empty Cell" type="SubSheetInfo"><subsheetid>0b5de6c6-ed9a-443d-95b8-142dd521120e</subsheetid><narrative>Searches for the next empty cell in the direction given. This can either activate that cell before returning, or just return the cell reference while leaving the active cell as it was. Params: - handle : Number : The integer handle identifying the Excel instance to use. The default of zero indicates the 'current' instance. - Direction : Text : The direction in which to go, this should start with "U", "D", "L" or "R" (not case-sensitive) - the rest of the string is ignored, so you can use "Up", "DOWN" "left" and, indeed, "r" - Activate Cell? : Flag : True to activate the found cell, False to just return the reference. Default is False. Returns: - Cell Reference : Text : The cell ID which represents the next empty cell in the required direction. This will be blank if no empty cell was found in the given direction. Exceptions: Invalid Direction Parameter : If the given direction parameter was invalid - ie. did not start with one of the (case-insensitive) letters "U", "D", "L" or "R".</narrative><display x="-300" y="-195" w="450" h="270" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="d3707693-ef57-453a-b8b2-16e8d8aee39f" name="Start" type="Start"><subsheetid>0b5de6c6-ed9a-443d-95b8-142dd521120e</subsheetid><loginhibit /><display x="-15" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required cell should be sought. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Direction" narrative="The direction in which the next empty cell is required. This should start with any of "U", "D", "L" or "R" to find a cell up, down, left or right respectively. The direction parameter is not case-sensitive." stage="direction" /><input type="flag" name="Activate Cell?" narrative="True to activate the cell which is found; False to just return the reference and leave the active cell as it was before. Default is False." stage="activatecell" /></inputs><onsuccess>ea536eb5-62b7-4b15-b0b9-0c5415414692</onsuccess></stage><stage stageid="65e26d12-b37e-4df9-a00b-07340967e5b2" name="End" type="End"><subsheetid>0b5de6c6-ed9a-443d-95b8-142dd521120e</subsheetid><loginhibit /><display x="-15" y="105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="Cell Reference" narrative="The cell reference identifying the next empty cell from the active cell in the direction given. An empty value indicates that there were no empty cells between the active cell and a boundary." stage="cellref" /></outputs></stage><stage stageid="2d159e37-f93b-42db-b8a7-3ea3e5300c76" name="direction" type="Data"><subsheetid>0b5de6c6-ed9a-443d-95b8-142dd521120e</subsheetid><display x="-240" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="bf3a1953-80c7-4d24-92fe-1e6823202956" name="cellref" type="Data"><subsheetid>0b5de6c6-ed9a-443d-95b8-142dd521120e</subsheetid><display x="-150" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="ea536eb5-62b7-4b15-b0b9-0c5415414692" name="Direction Valid?" type="Decision"><subsheetid>0b5de6c6-ed9a-443d-95b8-142dd521120e</subsheetid><loginhibit /><narrative>Direction must start with one of the following: - U : Indicates 'up' - D : Indicates 'down' - L : Indicates 'left' - R : Indicates 'right' Any other value (including empty text) is invalid</narrative><display x="-15" y="-75" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="Len(Trim([direction]))>0 AND InStr("UDLR",Upper(Left(Trim([direction]),1)))<>0" /><ontrue>e8cca858-4b46-40a0-81fc-3112398c4a42</ontrue><onfalse>382555c6-554f-465d-bbac-43e5b0ec06ed</onfalse></stage><stage stageid="382555c6-554f-465d-bbac-43e5b0ec06ed" name="Invalid Direction Parameter" type="Exception"><subsheetid>0b5de6c6-ed9a-443d-95b8-142dd521120e</subsheetid><display x="150" y="-75" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="Invalid Direction Parameter" detail=""Direction: '" & [direction] & "' is invalid - it must start with 'U', 'D', 'L' or 'R' (up, down, left or right)"" /></stage><stage stageid="e8cca858-4b46-40a0-81fc-3112398c4a42" name="FindEmptyCell" type="Code"><subsheetid>0b5de6c6-ed9a-443d-95b8-142dd521120e</subsheetid><loginhibit /><display x="-15" y="-15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="direction" expr="[direction]" /></inputs><outputs><output type="text" name="cellref" stage="cellref" /></outputs><onsuccess>a47f3c07-957d-4909-bc43-4c56e5f58ae6</onsuccess><code><![CDATA[ ' The initial char of the direction (capitalised) Dim strDir as String = direction.Trim().Substring(0,1).ToUpper() ' The excel instance Dim excel as Object = GetInstance(handle) ' The excel enum representing the direction ' Note: setting to zero is just to nix a duff compiler warning Dim dirn as Integer = 0 ' xlDirection enum values from: ' http://msdn.microsoft.com/en-us/library/bb241212.aspx ' Get the direction we need to go Select Case strDir Case "U" dirn = -4162 ' Excel.XlDirection.xlToUp Case "D" dirn = -4121 ' Excel.XlDirection.xlToDown Case "L" dirn = -4159 ' Excel.XlDirection.xlToLeft Case "R" dirn = -4161 ' Excel.XlDirection.xlToRight Case Else Throw New ArgumentException("Invalid Direction: " & strDir) End Select Dim cell as Object = excel.ActiveCell While True ' First check the next one along - if that's blank then we're away.. Dim nextCell as Object = GetNextCell(cell, strDir) ' If the cell address is the same on moving - that indicates we're ' at a limit (eg. 1st column going left, last row going down etc.) ' Just return empty to indicate that there are no blank cells in ' that direction. If cell.Address = nextCell.Address Then cellref = "" Return ElseIf nextCell.Value = Nothing Then ' We've found our blank cellref = nextCell.Address(False,False) Return End If cell = nextCell ' Quick way (rather than plodding from one cell to the next) ' is to effectively press the 'End' key - but this is highly ' inconsistent in what it returns. ' Go to the 'end' of the range - ie. the last filled cell ' cell = cell.End(dirn) ' Now we need to go one beyond, ie. to the next cell ' cell = GetNextCell(cell, strDir) End While ]]></code></stage><stage stageid="facf151b-ee72-46d1-b528-a921e6945048" name="handle" type="Data"><subsheetid>0b5de6c6-ed9a-443d-95b8-142dd521120e</subsheetid><display x="-240" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="c507994e-eb49-43c1-bf77-9bf7cf88e0e6" name="Get Formatted Cell Value" type="SubSheetInfo"><subsheetid>17f8ab72-203a-42d4-a59b-a073ccd57bb0</subsheetid><narrative>Gets the formatted value of the desired cell. This will apply any formatting which is in place in the specified cell before outputting the value.</narrative><display x="-195" y="-105" w="210" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="c0ed8b3d-fb86-442b-959e-a601d2d5f84f" name="Start" type="Start"><subsheetid>17f8ab72-203a-42d4-a59b-a073ccd57bb0</subsheetid><loginhibit /><display x="15" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance within which the cell is contained. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Cell Reference" narrative="The reference to the cell whose value is required. Note that a side-effect of this action is that the specified cell will become the active cell on the specified instance. An empty value indicates the currently active cell." stage="cellref" /></inputs><onsuccess>29427d7f-a2d9-4b65-b6c4-773881bd285d</onsuccess></stage><stage stageid="722e3ab7-97b7-4cd6-886e-53bf4ac022ec" name="End" type="End"><subsheetid>17f8ab72-203a-42d4-a59b-a073ccd57bb0</subsheetid><loginhibit /><display x="15" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="Value" narrative="The formatted value at the given cell reference." stage="value" /></outputs></stage><stage stageid="1260d770-e90c-4ea2-9e64-e3442c7de787" name="cellref" type="Data"><subsheetid>17f8ab72-203a-42d4-a59b-a073ccd57bb0</subsheetid><display x="-195" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="6618eccc-3c6e-4660-997c-5f9142e71dc8" name="value" type="Data"><subsheetid>17f8ab72-203a-42d4-a59b-a073ccd57bb0</subsheetid><display x="-195" y="60" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="94dc11fe-505e-4544-a26b-80d3d88d0951" name="Get Cell Text" type="Code"><subsheetid>17f8ab72-203a-42d4-a59b-a073ccd57bb0</subsheetid><loginhibit /><display x="15" y="0" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="cellref" expr="[cellref]" /></inputs><outputs><output type="text" name="value" stage="value" /></outputs><onsuccess>722e3ab7-97b7-4cd6-886e-53bf4ac022ec</onsuccess><code><![CDATA[ value = GetInstance(handle).ActiveCell.Text]]></code></stage><stage stageid="3e695c2e-2110-4655-ba2e-31a41f453383" name="handle" type="Data"><subsheetid>17f8ab72-203a-42d4-a59b-a073ccd57bb0</subsheetid><display x="-195" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="d9fc29b1-af47-4caf-882b-d9fc56955a8b" name="Split Worksheet" type="SubSheetInfo"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><narrative>Splits the specified worksheet into separate workbooks, creating a new sheet on each one and copying a subset of rows across to it. Params: - handle : Number : The integer representing the Excel instance - 0 represents the 'active' excel instance. - Rows per sheet : Number : The number of rows which should be copied into each separate workbook. - Workbook Name : Text : The name of the workbook from which the sheet should be split. "" indicates the active workbook on the instance. - Worksheet Name : Text : The name of the worksheet from which the data should be split. "" indicates the active worksheet on the instance. - Path : Text : The directory in which the resultant workbooks should be saved. - No Title Row : Flag : True to indicate that the first row should *not* be used as a title row and copied across each of the generated workbooks. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance. - File Not Found : If the given path did not exist or was not a directory</narrative><display x="-240" y="-180" w="510" h="240" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="aa8bb9c5-c392-43d5-b8fb-6a6308c40ad6" name="End" type="End"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><loginhibit /><display x="105" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="052dc2d6-2989-49fb-9dbd-d4db6e106c98" name="Start" type="Start"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><loginhibit /><display x="105" y="-285" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the worksheet which should be retrieved resides. The default of zero indicates the currently active instance." stage="handle" /><input type="number" name="Rows per worksheet" narrative="The number of rows which should appear in each worksheet. Zero indicates all rows." stage="rowspersheet" /><input type="text" name="Workbook Name" narrative="The name of the workbook within the specified instance which contains the sheet to be split. The default empty text indicates the currently active workbook within the specified instance should be used." stage="workbookname" /><input type="text" name="Worksheet Name" narrative="The name of the worksheet within the specified workbook to split - The default empty value indicates that the currently active sheet within the workbook should be used." stage="worksheetname" /><input type="flag" name="No Title Row" narrative="True to indicate that the rows should just be split across without using the first row as a title row (ie. as a list of column headers). False to indicate that the first row contains the column headers which should be replicated across all generated sheets." stage="notitle" /><input type="text" name="Path" narrative="The path to the directory in which the generated workbooks should be created. The files will be created with a name of "{Workbook Name}_SECTION_nnnn", where nnnn is an number incrementing with each section generated." stage="path" /></inputs><onsuccess>ee1e1e11-a16a-4060-9ea0-0848320dfbaf</onsuccess></stage><stage stageid="3200e67b-1f79-4672-9828-e9e4438f565b" name="handle" type="Data"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><display x="-285" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="177b7483-8cfb-41a7-8644-e4fdc19ecf2a" name="rowspersheet" type="Data"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><display x="-150" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="dd48b9ea-dee0-4b1a-a9bb-7c84a64fa132" name="workbookname" type="Data"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><display x="-285" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="4f865844-bba2-4377-8b24-5d089cbfb8c4" name="worksheetname" type="Data"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><display x="-285" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="ee1e1e11-a16a-4060-9ea0-0848320dfbaf" name="CheckInstanceAndWorkbook" type="SubSheet"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><loginhibit /><display x="105" y="-225" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /></inputs><onsuccess>359dbb2d-d57f-48c1-9c7f-1d22ef094036</onsuccess><processid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</processid></stage><stage stageid="359dbb2d-d57f-48c1-9c7f-1d22ef094036" name="Split Worksheet" type="Code"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><loginhibit /><display x="105" y="-165" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /><input type="text" name="worksheetname" expr="[worksheetname]" /><input type="number" name="rowspersheet" expr="[rowspersheet]" /><input type="flag" name="notitle" expr="[notitle]" /><input type="text" name="path" expr="[path]" /></inputs><outputs><output type="flag" name="filefound" stage="filefound" /><output type="flag" name="sheetexists" stage="sheetexists" /></outputs><onsuccess>5cb56c9a-aa29-4ed4-84e1-9a65976ba50f</onsuccess><code><![CDATA[Dim sheet as Object = GetWorksheet(handle,workbookname,worksheetname,False) sheetexists = sheet IsNot Nothing If Not sheetexists Then Return Dim book as Object = sheet.Parent Dim excel as Object = sheet.Application Dim prefix as String = book.Name If prefix.ToLower().EndsWith(".xls") Then prefix = prefix.Substring(0,prefix.Length - 4) End If If Not path.EndsWith("\") Then path += "\" End If filefound = Directory.Exists(path) If Not filefound Then ' Might as well quit now Return End If Dim lastCell as Object = sheet.Cells.Find("*", , , , , 2) 'Excel.XlSearchDirection.xlPrevious=2 'loop through the worksheet in blocks of Numblines lines ' Force overwrites if the excel book already exists. excel.DisplayAlerts = False ' Hide alerts Dim loopCount as Integer = 0 For row as Integer = 1 To lastCell.Row-1 Step rowspersheet ' -1 to cope with total-rows = rowspersheet loopCount = loopCount + 1 Dim newbook as Object = excel.Workbooks.Add If notitle Then 'copy each block into the new worksheet sheet.Range(sheet.Cells(row, 1), sheet.Cells(loopCount * rowspersheet, sheet.Columns.Count)).EntireRow.Copy(newbook.Sheets(1).Range("A1")) Else 'in here - so there must be a title row that needs copying to all the new worksheets If row = 1 Then 'copy row 1-201 into new worksheet (including title row at #1) sheet.Range(sheet.Cells(row, 1),sheet.Cells(row + rowspersheet,sheet.Columns.Count)).EntireRow.Copy(newbook.Sheets(1).Range("A1")) Else 'copy title row into new worksheet sheet.Range(sheet.Cells(1, 1),sheet.Cells(1,sheet.Columns.Count)).EntireRow.Copy(newbook.Sheets(1).Range("A1")) 'next copy row iloop+1 to iloop+NumbLines into new worksheet (i.e. 202-401) sheet.Range(sheet.Cells(row + 1, 1),sheet.Cells(row + rowspersheet,sheet.Columns.Count)).EntireRow.Copy(newbook.Sheets(1).Range("A2")) End If End If 'close and save the new workbook newbook.Close(True, path & prefix & "_SECTION_" & (loopCount+1000).ToString().Substring(1) & ".xls") Next]]></code></stage><stage stageid="cfd178fc-26e5-4e7c-b9f3-cb49ea4de27e" name="notitle" type="Data"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><display x="-150" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="acee6017-400e-44c3-8b07-611d7318fecf" name="path" type="Data"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><display x="-150" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="2dec5f88-d7e5-4ad4-be54-8744dc5cac54" name="filefound" type="Data"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><display x="-150" y="105" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="859597f9-d048-46a3-bf99-2f3f6588c2c5" name="Was file found?" type="Decision"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><loginhibit /><display x="105" y="-15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[filefound]" /><ontrue>aa8bb9c5-c392-43d5-b8fb-6a6308c40ad6</ontrue><onfalse>6b2c84c0-9ceb-4f05-8746-5dfbf7ed3733</onfalse></stage><stage stageid="6b2c84c0-9ceb-4f05-8746-5dfbf7ed3733" name="No Such Directory" type="Exception"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><display x="300" y="-15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="File Not Found" detail=""Directory : " & [path] & " does not exist or is not a directory"" /></stage><stage stageid="e9c5ba22-79d3-4bd7-ae8f-3b36c06dd51e" name="Get Number Of Rows" type="SubSheetInfo"><subsheetid>dc139ac7-b971-481e-9528-b1521ae9fc92</subsheetid><narrative>Counts the number of rows in a worksheet.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="555b5c2d-9106-444b-9c96-f1ff4699a988" name="End" type="End"><subsheetid>dc139ac7-b971-481e-9528-b1521ae9fc92</subsheetid><loginhibit /><display x="15" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="number" name="Number of rows" narrative="The number of rows." stage="rowcount" /></outputs></stage><stage stageid="1c4aa0dc-e628-424b-8df8-eaf16dbd668d" name="Start" type="Start"><subsheetid>dc139ac7-b971-481e-9528-b1521ae9fc92</subsheetid><loginhibit /><display x="15" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the number of rows is required. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Workbook Name" narrative="The name of the workbook on which the number of rows is required. The default empty text value indicates the currently active workbook on the specified instance." stage="workbookname" /><input type="text" name="Worksheet Name" narrative="The name of the worksheet on which the number of rows is required. The default empty text value indicates the currently active sheet on the specified workbook." stage="worksheetname" /></inputs><onsuccess>35173317-eeae-482b-8a2a-ea46406fcb4f</onsuccess></stage><stage stageid="35173317-eeae-482b-8a2a-ea46406fcb4f" name="CheckInstanceAndWorkbook" type="SubSheet"><subsheetid>dc139ac7-b971-481e-9528-b1521ae9fc92</subsheetid><loginhibit /><display x="15" y="-75" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /></inputs><onsuccess>aa3ba555-86e5-42ae-bdb5-b614c46bdaf9</onsuccess><processid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</processid></stage><stage stageid="aa3ba555-86e5-42ae-bdb5-b614c46bdaf9" name="Count Rows" type="Code"><subsheetid>dc139ac7-b971-481e-9528-b1521ae9fc92</subsheetid><loginhibit /><display x="15" y="-15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /><input type="text" name="worksheetname" expr="[worksheetname]" /></inputs><outputs><output type="number" name="rowcount" stage="rowcount" /></outputs><onsuccess>555b5c2d-9106-444b-9c96-f1ff4699a988</onsuccess><code><![CDATA[ ' enum - Excel.XlSearchDirection.xlPrevious=2 rowcount = GetWorksheet(handle,workbookname,worksheetname).Cells.Find("*", , , , , 2).Row]]></code></stage><stage stageid="fbf7b5e7-f86b-48f0-8d2a-8658bcabfe72" name="handle" type="Data"><subsheetid>dc139ac7-b971-481e-9528-b1521ae9fc92</subsheetid><display x="-270" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="ae17d409-d655-459f-a6fe-1c4ed04c7023" name="workbookname" type="Data"><subsheetid>dc139ac7-b971-481e-9528-b1521ae9fc92</subsheetid><display x="-270" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="4f2032a3-62ce-48a2-b098-ed275a569931" name="worksheetname" type="Data"><subsheetid>dc139ac7-b971-481e-9528-b1521ae9fc92</subsheetid><display x="-270" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="ac9321b0-2209-4f44-bd1e-3876c05fc35f" name="rowcount" type="Data"><subsheetid>dc139ac7-b971-481e-9528-b1521ae9fc92</subsheetid><display x="-150" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="e1bb96d7-94f9-4570-85a9-f1bcff4f31ae" name="Is Read Only" type="SubSheetInfo"><subsheetid>ddb3c741-0c59-4ac8-a260-258fb8eb1674</subsheetid><narrative>Checks if the given workbook is read only or not. Params: - handle : Number : The integer identifying the excel instance to check. Default (0) indicates the current instance. - Workbook Name : Text : The name of the workbook to be checked. Default ("") indicates the active workbook on the given instance. Output: Read Only? : Flag : True to indicate that the workbook is read only; False to indicate that it is writable. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance.</narrative><display x="-300" y="-165" w="420" h="210" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="bb6cb4de-9a8f-424e-82d8-52d766ab5da5" name="Start" type="Start"><subsheetid>ddb3c741-0c59-4ac8-a260-258fb8eb1674</subsheetid><loginhibit /><display x="0" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the workbook which should be checked resides. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Workbook Name" narrative="The name of the workbook to test to see if it is read-only or not." stage="workbookname" /></inputs><onsuccess>91487aa9-0d65-4895-940d-c4fed2212eec</onsuccess></stage><stage stageid="1e8fe949-d784-437f-a724-b5003709f18c" name="End" type="End"><subsheetid>ddb3c741-0c59-4ac8-a260-258fb8eb1674</subsheetid><loginhibit /><display x="0" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="flag" name="Read Only?" narrative="True to indicate that the specified workbook is read-only; False to indicate that it can be written to." stage="isreadonly" /></outputs></stage><stage stageid="cfa1438f-ab60-4810-a5b5-ede71fc7b700" name="handle" type="Data"><subsheetid>ddb3c741-0c59-4ac8-a260-258fb8eb1674</subsheetid><display x="-270" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="da3c5815-0a1f-4d3d-af8a-09e5f8a1d262" name="workbookname" type="Data"><subsheetid>ddb3c741-0c59-4ac8-a260-258fb8eb1674</subsheetid><display x="-270" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="91487aa9-0d65-4895-940d-c4fed2212eec" name="CheckInstanceAndWorkbook" type="SubSheet"><subsheetid>ddb3c741-0c59-4ac8-a260-258fb8eb1674</subsheetid><loginhibit /><display x="0" y="-90" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /></inputs><onsuccess>e412638c-10ff-49e6-ae71-6b5c86f40ddb</onsuccess><processid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</processid></stage><stage stageid="b7057d73-acb5-4298-a652-5f91898d67d6" name="isreadonly" type="Data"><subsheetid>ddb3c741-0c59-4ac8-a260-258fb8eb1674</subsheetid><display x="-150" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="e412638c-10ff-49e6-ae71-6b5c86f40ddb" name="Check Read Only" type="Code"><subsheetid>ddb3c741-0c59-4ac8-a260-258fb8eb1674</subsheetid><loginhibit /><display x="0" y="-45" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /></inputs><outputs><output type="flag" name="isreadonly" stage="isreadonly" /></outputs><onsuccess>1e8fe949-d784-437f-a724-b5003709f18c</onsuccess><code><![CDATA[ isreadonly = GetWorkbook(handle,workbookname).ReadOnly]]></code></stage><stage stageid="fedc107e-577b-47d9-a445-c3a3e66ef516" name="Close All Instances" type="SubSheet"><subsheetid>ab6c7fcd-9997-4c5c-9ff1-2dcb5879975a</subsheetid><loginhibit /><display x="15" y="-60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>d2814bb7-61fc-4b4f-8fd9-2dd9f79c06ba</onsuccess><processid>feb8ce9f-299e-4152-85a1-354a5f9d995c</processid></stage><stage stageid="f6285d0d-f7fe-4987-96cf-4d0e27180f81" name="Show" type="SubSheetInfo"><subsheetid>268628ce-c0f3-492a-be5c-87b432e16d1d</subsheetid><narrative>Shows a window attached to the instance identified. Params: - handle : Number : The handle identifying the excel instance to show. The default of zero shows the currently active instance. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. </narrative><display x="-225" y="-105" w="330" h="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="865342da-5035-45ef-9902-c74ba855f521" name="Start" type="Start"><subsheetid>268628ce-c0f3-492a-be5c-87b432e16d1d</subsheetid><loginhibit /><display x="15" y="-150" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance which should have its window displayed. The default of zero indicates the currently active instance." stage="handle" /></inputs><onsuccess>6562ae8e-f16f-4f89-8787-7884cc6a57db</onsuccess></stage><stage stageid="565f4f77-b276-4735-9c18-000ce13946a7" name="End" type="End"><subsheetid>268628ce-c0f3-492a-be5c-87b432e16d1d</subsheetid><loginhibit /><display x="15" y="-15" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="6562ae8e-f16f-4f89-8787-7884cc6a57db" name="CheckInstanceHandle" type="SubSheet"><subsheetid>268628ce-c0f3-492a-be5c-87b432e16d1d</subsheetid><loginhibit /><display x="15" y="-105" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><onsuccess>7785ca63-e0a8-40c6-940b-0d9e73944b25</onsuccess><processid>492548e8-2fa5-473e-9061-df8326d46e4c</processid></stage><stage stageid="97a05e5a-864b-4413-8623-d939827e5c39" name="Hide" type="SubSheetInfo"><subsheetid>ef10421c-e1ff-4227-b367-c53059a6766d</subsheetid><narrative>Hides the window attached to the instance identified. Params: - handle : Number : The handle identifying the excel instance to hide. The default of zero shows the currently active instance. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. </narrative><display x="-240" y="-120" w="360" h="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="7785ca63-e0a8-40c6-940b-0d9e73944b25" name="ShowInstance" type="Code"><subsheetid>268628ce-c0f3-492a-be5c-87b432e16d1d</subsheetid><loginhibit /><display x="15" y="-60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><onsuccess>565f4f77-b276-4735-9c18-000ce13946a7</onsuccess><code><![CDATA[ GetInstance(handle).Visible = True]]></code></stage><stage stageid="f65b17c8-19fe-4381-9b68-8909f6aa312d" name="handle" type="Data"><subsheetid>268628ce-c0f3-492a-be5c-87b432e16d1d</subsheetid><display x="-195" y="-15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="11f4ca85-d053-4b2e-a46d-705fe87040c0" name="Start" type="Start"><subsheetid>ef10421c-e1ff-4227-b367-c53059a6766d</subsheetid><loginhibit /><preconditions><condition narrative="" /></preconditions><display x="15" y="-165" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance which should have its window hidden. The default of zero indicates the currently active instance." stage="handle" /></inputs><onsuccess>ebc908b3-4501-4500-9648-a35ebbabddda</onsuccess></stage><stage stageid="6106570f-43e1-4a42-9f67-c8f2522a910c" name="End" type="End"><subsheetid>ef10421c-e1ff-4227-b367-c53059a6766d</subsheetid><loginhibit /><display x="15" y="-30" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="ebc908b3-4501-4500-9648-a35ebbabddda" name="CheckInstanceHandle" type="SubSheet"><subsheetid>ef10421c-e1ff-4227-b367-c53059a6766d</subsheetid><loginhibit /><display x="15" y="-120" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><onsuccess>1cc2d38f-3783-42f7-8b75-78243c367fb3</onsuccess><processid>492548e8-2fa5-473e-9061-df8326d46e4c</processid></stage><stage stageid="1cc2d38f-3783-42f7-8b75-78243c367fb3" name="HideInstance" type="Code"><subsheetid>ef10421c-e1ff-4227-b367-c53059a6766d</subsheetid><loginhibit /><display x="15" y="-75" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><onsuccess>6106570f-43e1-4a42-9f67-c8f2522a910c</onsuccess><code><![CDATA[ GetInstance(handle).Visible = False]]></code></stage><stage stageid="11e05865-7edb-4526-b015-b4b5f725fbc4" name="handle" type="Data"><subsheetid>ef10421c-e1ff-4227-b367-c53059a6766d</subsheetid><display x="-195" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="2e480365-7061-4a6c-81ea-380e5bd06ef7" name="Save Current Workbook As" type="SubSheetInfo"><subsheetid>81b9e5cd-a91d-4a33-bc23-1602c5fe878f</subsheetid><narrative>Save the current workbook using the given file name. This is the equivalent of calling the 'Save Workbook As' action with the default values for 'handle' (0) and 'Workbook Name' ("") Params : - File name : Text : The path and name of the file to which the workbook should be saved. Output : - New Workbook Name : Text : The new name with which the workbook is identified within the excel instance.</narrative><display x="-285" y="-150" w="360" h="150" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="7e1a622f-6438-41c8-9b86-e0d93c8267cb" name="Start" type="Start"><subsheetid>81b9e5cd-a91d-4a33-bc23-1602c5fe878f</subsheetid><loginhibit /><display x="-15" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance for which the current workbook which should be saved. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="File name" narrative="The full path and file name to which the current workbook should be saved." stage="filename" /></inputs><onsuccess>ec111fc5-c308-4507-8b78-8fa3a8cfa136</onsuccess></stage><stage stageid="acb62e2e-bb38-4f8b-8ceb-61ec851d8986" name="End" type="End"><subsheetid>81b9e5cd-a91d-4a33-bc23-1602c5fe878f</subsheetid><loginhibit /><display x="-15" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="New Workbook Name" narrative="The new workbook name which Excel will use to identify the workbook." stage="newworkbookname" /></outputs></stage><stage stageid="c5eee5f9-2db2-4efb-8f47-46e98073dedb" name="filename" type="Data"><subsheetid>81b9e5cd-a91d-4a33-bc23-1602c5fe878f</subsheetid><display x="-195" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="ec111fc5-c308-4507-8b78-8fa3a8cfa136" name="Save Workbook As" type="SubSheet"><subsheetid>81b9e5cd-a91d-4a33-bc23-1602c5fe878f</subsheetid><loginhibit /><display x="-15" y="-60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="Workbook Name" expr="""" /><input type="text" name="Filename" expr="[filename]" /></inputs><outputs><output type="text" name="New Workbook Name" stage="newworkbookname" /></outputs><onsuccess>acb62e2e-bb38-4f8b-8ceb-61ec851d8986</onsuccess><processid>21a53e34-8128-41cb-ad73-17250758ff23</processid></stage><stage stageid="09b432b9-8774-440c-8468-a5effa8bfe98" name="Exit" type="SubSheetInfo"><subsheetid>dc33871a-9aec-4a29-b811-3ab205ddf41e</subsheetid><narrative>Here for backward compatibility - exits the current instance of Excel without saving any changes.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="4f9b1c2f-8b07-4ff1-95bc-12d1de8ec1a8" name="Start" type="Start"><subsheetid>dc33871a-9aec-4a29-b811-3ab205ddf41e</subsheetid><loginhibit /><display x="-30" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>fc97b188-f45e-46f4-a66e-f592917cabb1</onsuccess></stage><stage stageid="c6c7615b-e18b-42aa-9e83-88884e01e23b" name="End" type="End"><subsheetid>dc33871a-9aec-4a29-b811-3ab205ddf41e</subsheetid><loginhibit /><display x="-30" y="-15" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="fc97b188-f45e-46f4-a66e-f592917cabb1" name="Close Instance" type="SubSheet"><subsheetid>dc33871a-9aec-4a29-b811-3ab205ddf41e</subsheetid><loginhibit /><display x="-30" y="-75" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="0" /><input type="flag" name="Save Changes" expr="False" /></inputs><onsuccess>c6c7615b-e18b-42aa-9e83-88884e01e23b</onsuccess><processid>6ec3006a-6553-4526-b522-32526c4aa3cc</processid></stage><stage stageid="f441e8a4-9990-4a87-a011-cb9f6c56a3f3" name="Save Current Workbook" type="SubSheetInfo"><subsheetid>76d598ed-b254-4c1e-8004-d4f2928b1450</subsheetid><narrative>Saves the current workbook using the workbook name as the file name. This is the equivalent of calling the Save Workbook action with the default values for 'handle' (0) and 'Workbook Name' ("") Exceptions: - Bad Handle : If there is no active instance. - Workbook Not Found : If there is no active workbook on the instance.</narrative><display x="-270" y="-90" w="330" h="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="ed1db4c8-9563-4f9f-9606-a26b934a1db5" name="Start" type="Start"><subsheetid>76d598ed-b254-4c1e-8004-d4f2928b1450</subsheetid><loginhibit /><display x="-45" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>0d75fe69-c13e-4536-a444-0f915cb6844a</onsuccess></stage><stage stageid="097cd2c8-6d4c-42dc-a542-6e1f1e5a1b7e" name="End" type="End"><subsheetid>76d598ed-b254-4c1e-8004-d4f2928b1450</subsheetid><loginhibit /><display x="-45" y="-15" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="0d75fe69-c13e-4536-a444-0f915cb6844a" name="Save Workbook" type="SubSheet"><subsheetid>76d598ed-b254-4c1e-8004-d4f2928b1450</subsheetid><loginhibit /><display x="-45" y="-75" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="0" /><input type="text" name="Workbook Name" expr="""" /></inputs><onsuccess>097cd2c8-6d4c-42dc-a542-6e1f1e5a1b7e</onsuccess><processid>6e7cb0ad-5910-4065-aab2-2919726bae39</processid></stage><stage stageid="4e15b86d-9a5b-40ce-babe-c9fb02cf8764" name="createifmissing" type="Data"><subsheetid>733c2840-8162-465a-a8f2-7d023087c369</subsheetid><display x="-180" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>False</initialvalue><private /><alwaysinit /></stage><stage stageid="dabb4d29-516f-442c-b2da-32cc45ae4df3" name="Get Worksheet As Collection (Fast)" type="SubSheetInfo"><subsheetid>e58a482d-f349-4f40-9b03-a903156ce1b5</subsheetid><narrative>Here for back-compatability. Should be considered deprecated and calls should be replaced by "Get Worksheet As Collection", but right now this gets the active worksheet on the active workbook in the current instance of Excel into a collection. It is the equivalent of calling GetWorksheet As Collection with all the default input values. Output: Data : Collection : The active sheet's data in a collection.</narrative><display x="-300" y="-120" w="330" h="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="c9ce0be6-6a88-4147-aeb3-e8974bb74970" name="Start" type="Start"><subsheetid>e58a482d-f349-4f40-9b03-a903156ce1b5</subsheetid><loginhibit /><display x="-45" y="-165" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>a3308402-1446-47b9-9e40-cc105a30db14</onsuccess></stage><stage stageid="aa04eeb6-e87c-4392-b7d2-52e4eb0b28af" name="End" type="End"><subsheetid>e58a482d-f349-4f40-9b03-a903156ce1b5</subsheetid><loginhibit /><display x="-45" y="0" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="collection" name="Data" narrative="The data output" stage="worksheetcollection" /></outputs></stage><stage stageid="98e74d10-88b7-40dd-b771-0a137c8d0665" name="worksheetcollection" type="Collection"><subsheetid>e58a482d-f349-4f40-9b03-a903156ce1b5</subsheetid><display x="-210" y="-15" w="120" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>collection</datatype><private /><alwaysinit /></stage><stage stageid="a3308402-1446-47b9-9e40-cc105a30db14" name="Get Worksheet As Collection" type="SubSheet"><subsheetid>e58a482d-f349-4f40-9b03-a903156ce1b5</subsheetid><loginhibit /><display x="-45" y="-90" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="0" /><input type="text" name="Workbook Name" expr="""" /><input type="text" name="Worksheet Name" expr="""" /><input type="text" name="Fetch Data With Method" expr="""" /></inputs><outputs><output type="collection" name="Data" stage="worksheetcollection" /></outputs><onsuccess>aa04eeb6-e87c-4392-b7d2-52e4eb0b28af</onsuccess><processid>8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30</processid></stage><stage stageid="078c6299-d93e-41b7-9a05-e26f0436b301" name="Format Cell" type="SubSheetInfo"><subsheetid>a031ba9a-3bd2-49b3-8d9b-6f982b34eb3c</subsheetid><narrative>Sets the number format at the given cell to that specified. Oddly, this *doesn't* set the currently active cell.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="584cad36-fa91-4f11-83b7-4829f89f9a35" name="Start" type="Start"><subsheetid>a031ba9a-3bd2-49b3-8d9b-6f982b34eb3c</subsheetid><loginhibit /><display x="-45" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the cell to be formatted is contained. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Cell Reference" narrative="The reference to the cell whose format should be changed." stage="cellref" /><input type="text" name="Cell Format" narrative="The format required for the cell - this can be the name of the default format (eg. "General") or a sequence of formatting codes (eg. "£#,##0.00_);[Red](£#,##0.00)")" stage="format" /></inputs><onsuccess>6ed5e96a-3604-426e-b112-0be4f4f4b9a8</onsuccess></stage><stage stageid="59f040b8-35ab-48a1-8321-ab6d321172f4" name="cellref" type="Data"><subsheetid>a031ba9a-3bd2-49b3-8d9b-6f982b34eb3c</subsheetid><display x="-195" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="1867e11e-a153-4421-9512-848674ac9bea" name="format" type="Data"><subsheetid>a031ba9a-3bd2-49b3-8d9b-6f982b34eb3c</subsheetid><display x="-195" y="60" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="f19aada3-d5b7-49ca-8f65-824a0be6abea" name="handle" type="Data"><subsheetid>a031ba9a-3bd2-49b3-8d9b-6f982b34eb3c</subsheetid><display x="-195" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="bc1c92c3-d8fd-4e00-86eb-cf22a3331a93" name="Format Current Cell" type="SubSheetInfo"><subsheetid>9b535bfc-4f80-4d7c-88b5-49b941688030</subsheetid><narrative>Sets a cell format for the currently active cell.</narrative><display x="-195" y="-105" w="180" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="7fea1a9b-6cad-487c-a1d4-0b7a31c0b1e6" name="Start" type="Start"><subsheetid>9b535bfc-4f80-4d7c-88b5-49b941688030</subsheetid><loginhibit /><display x="-30" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the cell to be formatted is contained. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Cell Format" narrative="The format required for the cell - this can be the name of the default format (eg. "General") or a sequence of formatting codes (eg. "£#,##0.00_);[Red](£#,##0.00)")" stage="format" /></inputs><onsuccess>a8dd2eb1-5144-4f87-b5fc-87dc562df875</onsuccess></stage><stage stageid="936f31ef-fa8e-4960-aa8a-1653cc6d7de2" name="Get Active Cell" type="SubSheetInfo"><subsheetid>31ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5c</subsheetid><narrative>Gets a reference to the currently active cell on the given instance.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="b4a8f71f-cdb8-4091-99f6-f127fb3ec48d" name="Start" type="Start"><subsheetid>31ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5c</subsheetid><loginhibit /><display x="0" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the currently active cell is required. The default of zero indicates the currently active instance." stage="handle" /></inputs><onsuccess>0f68d429-d637-41bc-ab1c-3890e4e57da6</onsuccess></stage><stage stageid="de4f91e6-efde-42cd-9efa-700811c74c15" name="End" type="End"><subsheetid>31ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5c</subsheetid><loginhibit /><display x="0" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="Cell Reference" narrative="The reference identifying the currently active cell on the specified sheet." stage="cellref" /></outputs></stage><stage stageid="3251089f-0682-4cd7-84d1-78fd6a3f68db" name="handle" type="Data"><subsheetid>31ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5c</subsheetid><display x="-180" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="a88df339-9204-419b-9dd7-4553548f1dff" name="cellref" type="Data"><subsheetid>31ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5c</subsheetid><display x="-180" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="0f68d429-d637-41bc-ab1c-3890e4e57da6" name="CheckInstanceHandle" type="SubSheet"><subsheetid>31ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5c</subsheetid><loginhibit /><display x="0" y="-90" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle representing the instance." expr="[handle]" /></inputs><onsuccess>0749822c-e521-461c-a3cc-23f5a695980b</onsuccess><processid>492548e8-2fa5-473e-9061-df8326d46e4c</processid></stage><stage stageid="0749822c-e521-461c-a3cc-23f5a695980b" name="GetActiveCell" type="Code"><subsheetid>31ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5c</subsheetid><loginhibit /><display x="0" y="-45" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><outputs><output type="text" name="cellref" stage="cellref" /></outputs><onsuccess>de4f91e6-efde-42cd-9efa-700811c74c15</onsuccess><code><![CDATA[ cellref = GetInstance(handle).ActiveCell.Address(False,False)]]></code></stage><stage stageid="035e5e46-b65c-4bb5-8684-b433aa67ec7b" name="activatecell" type="Data"><subsheetid>0b5de6c6-ed9a-443d-95b8-142dd521120e</subsheetid><display x="-150" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>False</initialvalue><private /><alwaysinit /></stage><stage stageid="a47f3c07-957d-4909-bc43-4c56e5f58ae6" name="Activate Cell?" type="Decision"><subsheetid>0b5de6c6-ed9a-443d-95b8-142dd521120e</subsheetid><loginhibit /><display x="-15" y="45" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[activatecell]" /><ontrue>e17eb74e-6764-4980-a96c-dd500de13181</ontrue><onfalse>65e26d12-b37e-4df9-a00b-07340967e5b2</onfalse></stage><stage stageid="e17eb74e-6764-4980-a96c-dd500de13181" name="Go To Cell" type="SubSheet"><subsheetid>0b5de6c6-ed9a-443d-95b8-142dd521120e</subsheetid><loginhibit /><display x="135" y="45" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="Cell Reference" expr="[cellref]" /></inputs><onsuccess>23c196fc-bba5-4cc0-8e36-c8d6db96e360</onsuccess><processid>ed502669-4207-4c88-895d-8c58ec321578</processid></stage><stage stageid="23c196fc-bba5-4cc0-8e36-c8d6db96e360" name="anchor2" type="Anchor"><subsheetid>0b5de6c6-ed9a-443d-95b8-142dd521120e</subsheetid><loginhibit /><display x="135" y="105" w="10" h="10" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>65e26d12-b37e-4df9-a00b-07340967e5b2</onsuccess></stage><stage stageid="5c445c44-609a-45b3-8c4a-ff4a670213df" name="Go To Next Empty Cell Left" type="SubSheetInfo"><subsheetid>eaafa766-b0ce-4891-8e6e-de12d6283ae0</subsheetid><narrative>Activates the next empty cell that can be found on the left of the active cell.</narrative><display x="-210" y="-105" w="210" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="75944053-c0d7-42b9-9231-b173e13066f5" name="Start" type="Start"><subsheetid>eaafa766-b0ce-4891-8e6e-de12d6283ae0</subsheetid><loginhibit /><display x="-30" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required cell should be found. The default of zero indicates the currently active instance." stage="handle" /></inputs><onsuccess>10b0cef9-77af-42e0-b42e-6fc1870587a4</onsuccess></stage><stage stageid="63d50db2-a5f9-48a9-ae16-9a801712b53c" name="End" type="End"><subsheetid>eaafa766-b0ce-4891-8e6e-de12d6283ae0</subsheetid><loginhibit /><display x="-30" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="Cell Reference" narrative="The reference of the cell which has been found to be empty - an empty value indicates that no empty cells were found." stage="cellref" /></outputs></stage><stage stageid="10b0cef9-77af-42e0-b42e-6fc1870587a4" name="Find Next Empty Cell" type="SubSheet"><subsheetid>eaafa766-b0ce-4891-8e6e-de12d6283ae0</subsheetid><loginhibit /><display x="-30" y="-60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required cell should be sought. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Direction" narrative="The direction in which the next empty cell is required. This should start with any of "U", "D", "L" or "R" to find a cell up, down, left or right respectively. The direction parameter is not case-sensitive." expr=""L"" /><input type="flag" name="Activate Cell?" narrative="True to activate the cell which is found; False to just return the reference and leave the active cell as it was before. Default is False." expr="True" /></inputs><outputs><output type="text" name="Cell Reference" narrative="The cell reference identifying the next empty cell from the active cell in the direction given. An empty value indicates that there were no empty cells between the active cell and a boundary." stage="cellref" /></outputs><onsuccess>63d50db2-a5f9-48a9-ae16-9a801712b53c</onsuccess><processid>0b5de6c6-ed9a-443d-95b8-142dd521120e</processid></stage><stage stageid="f6b88b10-a188-436b-830e-b7eaf783495c" name="handle" type="Data"><subsheetid>eaafa766-b0ce-4891-8e6e-de12d6283ae0</subsheetid><display x="-195" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="6b1312d6-de01-4272-b3cd-765b4835a9f2" name="cellref" type="Data"><subsheetid>eaafa766-b0ce-4891-8e6e-de12d6283ae0</subsheetid><display x="-195" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="4ffa60dc-058f-4edc-9140-a43050494dee" name="Go To Next Empty Cell Right" type="SubSheetInfo"><subsheetid>d2d4c80d-3058-4d60-8e96-7b9b12f9ae58</subsheetid><narrative>Activates the next empty cell that can be found on the right of the active cell.</narrative><display x="-210" y="-105" w="210" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="78bf9f71-b3ba-4ef3-8142-08be21698287" name="Go To Next Empty Cell Up" type="SubSheetInfo"><subsheetid>5a78c1a5-e339-4f76-9203-d180bee31770</subsheetid><narrative>Activates the next empty cell that can be found above the active cell.</narrative><display x="-210" y="-105" w="210" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="0a069347-2e66-4668-ab57-b59e6536c5d0" name="Go To Next Empty Cell Down" type="SubSheetInfo"><subsheetid>82492075-b486-413c-9bd4-05eba466843e</subsheetid><narrative>Activates the next empty cell that can be found below the active cell.</narrative><display x="-210" y="-105" w="210" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="b3b21101-6815-4f78-b7af-06f0a73a4070" name="Start" type="Start"><subsheetid>d2d4c80d-3058-4d60-8e96-7b9b12f9ae58</subsheetid><loginhibit /><display x="-30" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required cell should be found. The default of zero indicates the currently active instance." stage="handle" /></inputs><onsuccess>782731b8-b7fb-4bec-8b35-b0438a5d8cec</onsuccess></stage><stage stageid="650fc617-bcbd-4d39-b835-748d94773ec6" name="End" type="End"><subsheetid>d2d4c80d-3058-4d60-8e96-7b9b12f9ae58</subsheetid><loginhibit /><display x="-30" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="Cell Reference" narrative="The reference of the cell which has been found to be empty - an empty value indicates that no empty cells were found." stage="cellref" /></outputs></stage><stage stageid="782731b8-b7fb-4bec-8b35-b0438a5d8cec" name="Find Next Empty Cell" type="SubSheet"><subsheetid>d2d4c80d-3058-4d60-8e96-7b9b12f9ae58</subsheetid><loginhibit /><display x="-30" y="-60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required cell should be sought. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Direction" narrative="The direction in which the next empty cell is required. This should start with any of "U", "D", "L" or "R" to find a cell up, down, left or right respectively. The direction parameter is not case-sensitive." expr=""R"" /><input type="flag" name="Activate Cell?" narrative="True to activate the cell which is found; False to just return the reference and leave the active cell as it was before. Default is False." expr="True" /></inputs><outputs><output type="text" name="Cell Reference" narrative="The cell reference identifying the next empty cell from the active cell in the direction given. An empty value indicates that there were no empty cells between the active cell and a boundary." stage="cellref" /></outputs><onsuccess>650fc617-bcbd-4d39-b835-748d94773ec6</onsuccess><processid>0b5de6c6-ed9a-443d-95b8-142dd521120e</processid></stage><stage stageid="56afae5f-81d8-4fdc-b521-cb4b99fac5c3" name="handle" type="Data"><subsheetid>d2d4c80d-3058-4d60-8e96-7b9b12f9ae58</subsheetid><display x="-195" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="347d2c28-0ea0-4ed0-95ce-14e5925f7193" name="cellref" type="Data"><subsheetid>d2d4c80d-3058-4d60-8e96-7b9b12f9ae58</subsheetid><display x="-195" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="4636685a-21dc-420d-ae4b-e435f9861298" name="Start" type="Start"><subsheetid>5a78c1a5-e339-4f76-9203-d180bee31770</subsheetid><loginhibit /><display x="-30" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required cell should be found. The default of zero indicates the currently active instance." stage="handle" /></inputs><onsuccess>c01227ef-86b5-48c4-8cbc-6db80b1df2c6</onsuccess></stage><stage stageid="c7e480b2-caf7-430d-b419-49c70c452c4f" name="End" type="End"><subsheetid>5a78c1a5-e339-4f76-9203-d180bee31770</subsheetid><loginhibit /><display x="-30" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="Cell Reference" narrative="The reference of the cell which has been found to be empty - an empty value indicates that no empty cells were found." stage="cellref" /></outputs></stage><stage stageid="c01227ef-86b5-48c4-8cbc-6db80b1df2c6" name="Find Next Empty Cell" type="SubSheet"><subsheetid>5a78c1a5-e339-4f76-9203-d180bee31770</subsheetid><loginhibit /><display x="-30" y="-60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required cell should be sought. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Direction" narrative="The direction in which the next empty cell is required. This should start with any of "U", "D", "L" or "R" to find a cell up, down, left or right respectively. The direction parameter is not case-sensitive." expr=""U"" /><input type="flag" name="Activate Cell?" narrative="True to activate the cell which is found; False to just return the reference and leave the active cell as it was before. Default is False." expr="True" /></inputs><outputs><output type="text" name="Cell Reference" narrative="The cell reference identifying the next empty cell from the active cell in the direction given. An empty value indicates that there were no empty cells between the active cell and a boundary." stage="cellref" /></outputs><onsuccess>c7e480b2-caf7-430d-b419-49c70c452c4f</onsuccess><processid>0b5de6c6-ed9a-443d-95b8-142dd521120e</processid></stage><stage stageid="2d6e7e4e-d6f5-45b7-b4ae-33658d6d38fd" name="handle" type="Data"><subsheetid>5a78c1a5-e339-4f76-9203-d180bee31770</subsheetid><display x="-195" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="287aee08-8696-49f9-b659-244e88067d0a" name="cellref" type="Data"><subsheetid>5a78c1a5-e339-4f76-9203-d180bee31770</subsheetid><display x="-195" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="4791458d-f683-4adf-ad1c-1591b3d2fab2" name="Start" type="Start"><subsheetid>82492075-b486-413c-9bd4-05eba466843e</subsheetid><loginhibit /><display x="-30" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required cell should be found. The default of zero indicates the currently active instance." stage="handle" /></inputs><onsuccess>072dae62-8d0d-4522-904c-6d253988874d</onsuccess></stage><stage stageid="b90c78f9-6a37-4db4-b30f-ac96d30c730c" name="End" type="End"><subsheetid>82492075-b486-413c-9bd4-05eba466843e</subsheetid><loginhibit /><display x="-30" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="Cell Reference" narrative="The reference of the cell which has been found to be empty - an empty value indicates that no empty cells were found." stage="cellref" /></outputs></stage><stage stageid="072dae62-8d0d-4522-904c-6d253988874d" name="Find Next Empty Cell" type="SubSheet"><subsheetid>82492075-b486-413c-9bd4-05eba466843e</subsheetid><loginhibit /><display x="-30" y="-60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required cell should be sought. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Direction" narrative="The direction in which the next empty cell is required. This should start with any of "U", "D", "L" or "R" to find a cell up, down, left or right respectively. The direction parameter is not case-sensitive." expr=""D"" /><input type="flag" name="Activate Cell?" narrative="True to activate the cell which is found; False to just return the reference and leave the active cell as it was before. Default is False." expr="True" /></inputs><outputs><output type="text" name="Cell Reference" narrative="The cell reference identifying the next empty cell from the active cell in the direction given. An empty value indicates that there were no empty cells between the active cell and a boundary." stage="cellref" /></outputs><onsuccess>b90c78f9-6a37-4db4-b30f-ac96d30c730c</onsuccess><processid>0b5de6c6-ed9a-443d-95b8-142dd521120e</processid></stage><stage stageid="c9e817ca-81d1-4d65-b9d1-27fe80445871" name="handle" type="Data"><subsheetid>82492075-b486-413c-9bd4-05eba466843e</subsheetid><display x="-195" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="1f9a80c2-fd03-43e2-a333-5f2c6b7ad0e2" name="cellref" type="Data"><subsheetid>82492075-b486-413c-9bd4-05eba466843e</subsheetid><display x="-195" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="febdcc05-5a8a-4445-a188-d0259dfd21a5" name="handle" type="Data"><subsheetid>9b535bfc-4f80-4d7c-88b5-49b941688030</subsheetid><display x="-195" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="9cbae4e4-6b41-4a38-a05e-0dc4df5d25a3" name="End" type="End"><subsheetid>a031ba9a-3bd2-49b3-8d9b-6f982b34eb3c</subsheetid><loginhibit /><display x="-45" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="111cd676-ae8c-4b83-9bb1-5567fe0735bd" name="FormatCell" type="Code"><subsheetid>a031ba9a-3bd2-49b3-8d9b-6f982b34eb3c</subsheetid><loginhibit /><display x="-45" y="-15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="cellref" expr="[cellref]" /><input type="text" name="format" expr="[format]" /><input type="number" name="handle" expr="[handle]" /></inputs><onsuccess>9cbae4e4-6b41-4a38-a05e-0dc4df5d25a3</onsuccess><code><![CDATA[ GetWorkbook(handle,Nothing).ActiveSheet.Range(cellref,cellref).NumberFormat = format]]></code></stage><stage stageid="6ed5e96a-3604-426e-b112-0be4f4f4b9a8" name="Activate Workbook" type="SubSheet"><subsheetid>a031ba9a-3bd2-49b3-8d9b-6f982b34eb3c</subsheetid><loginhibit /><display x="-45" y="-75" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the workbook should be activated. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Workbook Name" narrative="The workbook name identifying the workbook which should be activated - empty text indicates the currently active workbook, making this a no-op." expr="""" /></inputs><onsuccess>111cd676-ae8c-4b83-9bb1-5567fe0735bd</onsuccess><processid>6632ed99-8751-4c2a-ad00-3cc016300e08</processid></stage><stage stageid="a8dd2eb1-5144-4f87-b5fc-87dc562df875" name="Get Active Cell" type="SubSheet"><subsheetid>9b535bfc-4f80-4d7c-88b5-49b941688030</subsheetid><loginhibit /><display x="-30" y="-90" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the currently active cell is required. The default of zero indicates the currently active instance." expr="[handle]" /></inputs><outputs><output type="text" name="Cell Reference" narrative="The reference identifying the currently active cell on the specified sheet." stage="cellref" /></outputs><onsuccess>22a903ea-24b0-4f4b-ad3d-590aa6ab3d97</onsuccess><processid>31ed0ec6-5d0f-4f9e-90c8-1fb7e73e5d5c</processid></stage><stage stageid="8480e1e0-5e73-4bec-bc84-ab2b4a5f43fa" name="cellref" type="Data"><subsheetid>9b535bfc-4f80-4d7c-88b5-49b941688030</subsheetid><display x="120" y="-105" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="22a903ea-24b0-4f4b-ad3d-590aa6ab3d97" name="Format Cell" type="SubSheet"><subsheetid>9b535bfc-4f80-4d7c-88b5-49b941688030</subsheetid><loginhibit /><display x="-30" y="-45" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the cell to be formatted is contained. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Cell Reference" narrative="The reference to the cell whose format should be changed." expr="[cellref]" /><input type="text" name="Cell Format" narrative="The format required for the cell - this can be the name of the default format (eg. "General") or a sequence of formatting codes (eg. "£#,##0.00_);[Red](£#,##0.00)")" expr="[format]" /></inputs><onsuccess>2776814b-74bd-42b3-b282-80a156b933cd</onsuccess><processid>a031ba9a-3bd2-49b3-8d9b-6f982b34eb3c</processid></stage><stage stageid="dc6c799a-7fa3-4623-9bf8-e966d530b67d" name="format" type="Data"><subsheetid>9b535bfc-4f80-4d7c-88b5-49b941688030</subsheetid><display x="-195" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="2776814b-74bd-42b3-b282-80a156b933cd" name="End3" type="End"><subsheetid>9b535bfc-4f80-4d7c-88b5-49b941688030</subsheetid><loginhibit /><display x="-30" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="04fbbbb0-aba9-4518-8bc7-d26273986f9e" name="Set Window Size" type="SubSheetInfo"><subsheetid>39374841-edab-4ea9-86d9-5f2fff3f1a5f</subsheetid><narrative>Sets the window size of the specified instance.</narrative><display x="-195" y="-105" w="180" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="7a197c45-c253-4fb8-bed5-e01508e93824" name="Start" type="Start"><subsheetid>39374841-edab-4ea9-86d9-5f2fff3f1a5f</subsheetid><loginhibit /><display x="-15" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle specifying the instance on which the bounds should be changed." stage="handle" /><input type="number" name="Width" narrative="The width to which the instance's window should be set" stage="width" /><input type="number" name="Height" narrative="The height to which the instance's window should be set." stage="height" /></inputs><onsuccess>3d73ff94-84e6-4e12-947e-76d14884579c</onsuccess></stage><stage stageid="a952606a-38e1-4585-821a-7395c94d70cb" name="End" type="End"><subsheetid>39374841-edab-4ea9-86d9-5f2fff3f1a5f</subsheetid><loginhibit /><display x="-15" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="d4c82574-5577-49e8-80a8-79a27ace5ffb" name="Set Window Location" type="SubSheetInfo"><subsheetid>904eeb0d-e6a2-408b-99b5-621307252585</subsheetid><narrative>Moves the specified instance's window to the required location.</narrative><display x="-195" y="-105" w="180" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="67ee4120-06af-41a6-ae0a-629e1bd3bd05" name="Start" type="Start"><subsheetid>904eeb0d-e6a2-408b-99b5-621307252585</subsheetid><loginhibit /><display x="-30" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance whose window location should be set." stage="handle" /><input type="number" name="X" narrative="The x co-ordinate to which the window should be moved." stage="x" /><input type="number" name="Y" narrative="The y co-ordinate to which the window should be moved." stage="y" /></inputs><onsuccess>3f663a38-1c01-438f-a02a-aa56ded74764</onsuccess></stage><stage stageid="5b24c512-8930-4c34-9083-7834083ab65c" name="End" type="End"><subsheetid>904eeb0d-e6a2-408b-99b5-621307252585</subsheetid><loginhibit /><display x="-30" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="129fe5f1-311c-4b58-964f-74b62d5f17ad" name="Set Window State" type="SubSheetInfo"><subsheetid>d4998c94-d432-4713-81a5-e902535089c6</subsheetid><narrative>Minimizes / maximizes / restores the window attached to the specified excel instance. Exceptions: Invalid Input Parameter : If the given state was not "normal" and did not start with either "min" or "max"</narrative><display x="-240" y="-105" w="270" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="44e95a42-ad61-4e8d-af8a-aed037662ba8" name="Go To Next Cell" type="SubSheetInfo"><subsheetid>b0b877cd-07ce-4df1-a63b-89fa4d315c4c</subsheetid><narrative>Moves a specified number of rows and columns from the currently active cell and returns the new cell reference. If the resultant cell reference is the same as the active cell before this action was called, this action has 'failed'. This is usually because the active cell is too close to a boundary.</narrative><display x="-330" y="-135" w="420" h="150" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="a87664dd-017d-4b12-b9c3-7230d7910326" name="Start" type="Start"><subsheetid>b0b877cd-07ce-4df1-a63b-89fa4d315c4c</subsheetid><loginhibit /><display x="-45" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required cell should be navigated to. The default of zero indicates the currently active instance." stage="handle" /><input type="number" name="Rows" narrative="The number of rows to navigate down. A negative value indicates that the action should navigate UP the required number of rows." stage="rows" /><input type="number" name="Columns" narrative="The number of columns to navigate to the right. A negative value indicates that the action should navigate to the left." stage="cols" /></inputs><onsuccess>fdbdccce-2959-40cb-b4b4-d53556dd97a1</onsuccess></stage><stage stageid="dcae25b1-7e8b-4ee2-9ffc-11aacd935154" name="Close Current Workbook" type="SubSheetInfo"><subsheetid>efe9d5bd-c8f0-42e1-aadc-6c7b0bfdd92c</subsheetid><narrative>Closes the current workbook on the current excel instance. This is the equivalent of calling the 'Close Workbook' action with the default values for 'handle' (0) and 'Workbook Name' ("")</narrative><display x="-210" y="-105" w="210" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="8fccb8ba-397f-406d-a6cd-85cb3c09ba17" name="Start" type="Start"><subsheetid>efe9d5bd-c8f0-42e1-aadc-6c7b0bfdd92c</subsheetid><loginhibit /><display x="-30" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the workbook which should be closed resides. The default of zero indicates the currently active instance." stage="handle" /></inputs><onsuccess>9dbc3256-ac5d-4bb3-880c-a4aaaaf33bc5</onsuccess></stage><stage stageid="160a79e4-be77-47f7-b8f2-271a170a762f" name="End" type="End"><subsheetid>efe9d5bd-c8f0-42e1-aadc-6c7b0bfdd92c</subsheetid><loginhibit /><display x="-30" y="-30" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="9dbc3256-ac5d-4bb3-880c-a4aaaaf33bc5" name="Close Workbook" type="SubSheet"><subsheetid>efe9d5bd-c8f0-42e1-aadc-6c7b0bfdd92c</subsheetid><loginhibit /><display x="-30" y="-90" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="Workbook Name" expr="""" /><input type="flag" name="Save Data" expr="False" /></inputs><onsuccess>160a79e4-be77-47f7-b8f2-271a170a762f</onsuccess><processid>6ccaae8b-c06f-45c8-8772-835218881458</processid></stage><stage stageid="a9a3eac3-7c04-4983-9224-bbf490c75af1" name="handle" type="Data"><subsheetid>efe9d5bd-c8f0-42e1-aadc-6c7b0bfdd92c</subsheetid><display x="-195" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="00fbd16c-c443-4d2e-ae2a-4539f816c297" name="rows" type="Data"><subsheetid>b0b877cd-07ce-4df1-a63b-89fa4d315c4c</subsheetid><display x="-195" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="2fa354e6-61e2-452d-b0c4-208150e9076d" name="cols" type="Data"><subsheetid>b0b877cd-07ce-4df1-a63b-89fa4d315c4c</subsheetid><display x="-195" y="60" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="50344da8-13a3-4d20-899b-bfd3b5507681" name="End" type="End"><subsheetid>b0b877cd-07ce-4df1-a63b-89fa4d315c4c</subsheetid><loginhibit /><display x="-45" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="Cell Reference" narrative="The reference of the currently active cell after navigating the required number of rows / columns. If the action could not navigate the desired number of rows / columns (eg. the active cell is near a boundary), then the active cell will not have been change, and this cell reference will represent the same cell that was active before this action was initiated." stage="cellref" /></outputs></stage><stage stageid="30a3c6c6-5324-4fe2-a0b2-3026f1a5e379" name="GoToNextCell" type="Code"><subsheetid>b0b877cd-07ce-4df1-a63b-89fa4d315c4c</subsheetid><loginhibit /><display x="-45" y="-15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="number" name="cols" expr="[cols]" /><input type="number" name="rows" expr="[rows]" /></inputs><outputs><output type="text" name="cellref" stage="cellref" /></outputs><onsuccess>50344da8-13a3-4d20-899b-bfd3b5507681</onsuccess><code><![CDATA[ Dim Instance As Object = GetInstance(handle) If Instance.ActiveCell Is Nothing Then Dim wb As Object = Instance.ActiveWorkBook If wb IsNot Nothing Then Dim ws As Object = wb.ActiveSheet If ws IsNot Nothing Then ws.Range(1,1).Activate() Else Throw New Exception("There is no active worksheet") End If Else Throw New Exception("There is no active workbook") End If Else Try Instance.ActiveCell.Offset(rows,cols).Activate() Catch ex As Exception End Try End If cellref = Instance.ActiveCell.Address(False,False) ]]></code></stage><stage stageid="fdbdccce-2959-40cb-b4b4-d53556dd97a1" name="Activate Workbook" type="SubSheet"><subsheetid>b0b877cd-07ce-4df1-a63b-89fa4d315c4c</subsheetid><loginhibit /><display x="-45" y="-75" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the workbook should be activated. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Workbook Name" narrative="The workbook name identifying the workbook which should be activated - empty text indicates the currently active workbook, making this a no-op." expr="""" /></inputs><onsuccess>30a3c6c6-5324-4fe2-a0b2-3026f1a5e379</onsuccess><processid>6632ed99-8751-4c2a-ad00-3cc016300e08</processid></stage><stage stageid="5742c4d1-0b40-4dd9-8cf0-e66b9adeab4b" name="handle" type="Data"><subsheetid>b0b877cd-07ce-4df1-a63b-89fa4d315c4c</subsheetid><display x="-195" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="437bf59c-d85b-45c9-8828-2e2c665afd10" name="cellref" type="Data"><subsheetid>b0b877cd-07ce-4df1-a63b-89fa4d315c4c</subsheetid><display x="105" y="60" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="dc5149d8-0c99-413a-81c8-ba9efc719cdc" name="handle" type="Data"><subsheetid>39374841-edab-4ea9-86d9-5f2fff3f1a5f</subsheetid><display x="-195" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="a87fd94f-f26f-4c2e-bb67-1ae4c0bed939" name="width" type="Data"><subsheetid>39374841-edab-4ea9-86d9-5f2fff3f1a5f</subsheetid><display x="-195" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="59a65ce5-cfb1-4190-8449-e4fb5ced121a" name="height" type="Data"><subsheetid>39374841-edab-4ea9-86d9-5f2fff3f1a5f</subsheetid><display x="-195" y="60" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="3d73ff94-84e6-4e12-947e-76d14884579c" name="CheckInstanceHandle" type="SubSheet"><subsheetid>39374841-edab-4ea9-86d9-5f2fff3f1a5f</subsheetid><loginhibit /><display x="-15" y="-75" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle representing the instance." expr="[handle]" /></inputs><onsuccess>82380eea-db5c-47b3-9a94-2e19338cca95</onsuccess><processid>492548e8-2fa5-473e-9061-df8326d46e4c</processid></stage><stage stageid="82380eea-db5c-47b3-9a94-2e19338cca95" name="SetWindowSize" type="Code"><subsheetid>39374841-edab-4ea9-86d9-5f2fff3f1a5f</subsheetid><loginhibit /><display x="-15" y="-15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="number" name="height" expr="[height]" /><input type="number" name="width" expr="[width]" /></inputs><onsuccess>a952606a-38e1-4585-821a-7395c94d70cb</onsuccess><code><![CDATA[Dim excel as Object = GetInstance(handle) excel.WindowState = -4143 'Excel.XlWindowState.xlNormal excel.Width = width excel.Height = height]]></code></stage><stage stageid="8acfecd0-d6d9-4de0-ae9e-46922ed73111" name="x" type="Data"><subsheetid>904eeb0d-e6a2-408b-99b5-621307252585</subsheetid><display x="-195" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="b68bc93f-161f-4d6f-825d-2d961690ca56" name="y" type="Data"><subsheetid>904eeb0d-e6a2-408b-99b5-621307252585</subsheetid><display x="-195" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="079ee65b-a90b-4ab6-81b5-801557c07fbf" name="handle" type="Data"><subsheetid>904eeb0d-e6a2-408b-99b5-621307252585</subsheetid><display x="-195" y="-30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="3f663a38-1c01-438f-a02a-aa56ded74764" name="CheckInstanceHandle" type="SubSheet"><subsheetid>904eeb0d-e6a2-408b-99b5-621307252585</subsheetid><loginhibit /><display x="-30" y="-90" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle representing the instance." expr="[handle]" /></inputs><onsuccess>12d30538-38bf-4f9b-a180-41d0b836854c</onsuccess><processid>492548e8-2fa5-473e-9061-df8326d46e4c</processid></stage><stage stageid="12d30538-38bf-4f9b-a180-41d0b836854c" name="SetWindowLocation" type="Code"><subsheetid>904eeb0d-e6a2-408b-99b5-621307252585</subsheetid><loginhibit /><display x="-30" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="number" name="x" expr="[x]" /><input type="number" name="y" expr="[y]" /></inputs><onsuccess>5b24c512-8930-4c34-9083-7834083ab65c</onsuccess><code><![CDATA[Dim excel as Object = GetInstance(handle) excel.WindowState = -4143 'Excel.XlWindowState.xlNormal excel.Left = x excel.Top = y]]></code></stage><stage stageid="016d76a7-6a95-485e-84f5-faa85a0c0712" name="Start" type="Start"><subsheetid>d4998c94-d432-4713-81a5-e902535089c6</subsheetid><loginhibit /><display x="-30" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance whose window state should be set." stage="handle" /><input type="text" name="State" narrative="The state of the window which is required. Should start with "min" (to minimize the window), "max" (to maximise the window) or it should equal "normal" (to restore the window). Anything else will result in an error." stage="state" /></inputs><onsuccess>0f8fc913-9174-4304-823f-d18ffae7217a</onsuccess></stage><stage stageid="ffe49fc1-13a2-4e84-a649-bd692ef7752a" name="End" type="End"><subsheetid>d4998c94-d432-4713-81a5-e902535089c6</subsheetid><loginhibit /><display x="-30" y="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="ca7b06cd-e6e3-42e1-8980-cb429796aa3b" name="handle" type="Data"><subsheetid>d4998c94-d432-4713-81a5-e902535089c6</subsheetid><display x="-195" y="-30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="3db578f3-47a7-4150-9ccc-6f9a16dbe73f" name="CheckInstanceHandle" type="SubSheet"><subsheetid>d4998c94-d432-4713-81a5-e902535089c6</subsheetid><loginhibit /><display x="-30" y="0" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle representing the instance." expr="[handle]" /></inputs><onsuccess>458615b7-ea0b-4d96-9dce-87099d6e5950</onsuccess><processid>492548e8-2fa5-473e-9061-df8326d46e4c</processid></stage><stage stageid="458615b7-ea0b-4d96-9dce-87099d6e5950" name="SetWindowState" type="Code"><subsheetid>d4998c94-d432-4713-81a5-e902535089c6</subsheetid><loginhibit /><display x="-30" y="45" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="state" expr="[state]" /></inputs><onsuccess>ffe49fc1-13a2-4e84-a649-bd692ef7752a</onsuccess><code><![CDATA[Dim excel as Object = GetInstance(handle) If state.ToLower().StartsWith("min") Then excel.WindowState = -4140 ElseIf state.ToLower().StartsWith("max") Then excel.WindowState = -4137 ElseIf state.ToLower() = "normal" Then excel.WindowState = -4143 End If]]></code></stage><stage stageid="4686174e-a845-4f2b-9a0a-70325a2df399" name="Valid State?" type="Decision"><subsheetid>d4998c94-d432-4713-81a5-e902535089c6</subsheetid><loginhibit /><narrative>Checks if the given state is a valid value</narrative><display x="-30" y="-45" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="StartsWith([state],"max") or StartsWith([state],"min") or [state]="normal"" /><ontrue>3db578f3-47a7-4150-9ccc-6f9a16dbe73f</ontrue><onfalse>c0e54c49-a9fc-48c4-a54e-2b85581d4ba5</onfalse></stage><stage stageid="1537f595-55fc-4726-910a-1d5ef88bf7a4" name="state" type="Data"><subsheetid>d4998c94-d432-4713-81a5-e902535089c6</subsheetid><display x="-195" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="c0e54c49-a9fc-48c4-a54e-2b85581d4ba5" name="Invalid State Exception" type="Exception"><subsheetid>d4998c94-d432-4713-81a5-e902535089c6</subsheetid><display x="135" y="-45" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="Invalid Input Parameter" detail=""Invalid Window State Parameter : " & [state] & " - must start with 'min', 'max' or equal 'normal'"" /></stage><stage stageid="9d0e19ce-07b8-4074-a34c-6186bcd3ca77" name="newworkbookname" type="Data"><subsheetid>81b9e5cd-a91d-4a33-bc23-1602c5fe878f</subsheetid><display x="-195" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="04e9d703-4b1c-4196-b1ff-7bf68a12faae" name="newworkbookname" type="Data"><subsheetid>21a53e34-8128-41cb-ad73-17250758ff23</subsheetid><narrative>The new workbook name assigned by Excel after saving the book</narrative><display x="-135" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="9ab01750-1bb3-4299-add0-8a1d08f6bf41" name="handle" type="Data"><subsheetid>81b9e5cd-a91d-4a33-bc23-1602c5fe878f</subsheetid><display x="-195" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="f778bc6c-8cdd-4e56-80b8-b7cdb1fd11ae" name="Release Instance" type="SubSheetInfo"><subsheetid>4fb11e41-83d8-461d-8c0d-04cdd2f670e2</subsheetid><narrative>Removes an instance from this business object *without* closing or quitting it - after running this action, the instance in question will not be accessible by this object unless it is re-attached to using 'Open Instance'. Params: - handle : Number : The handle of the instance to be released. The default of 0 indicates the currently active instance. Note that following the current instance being released, the current instance will not be set. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. </narrative><display x="-240" y="-135" w="360" h="150" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="66fece2a-2c82-48bb-92fe-211ee6556a24" name="Start" type="Start"><subsheetid>4fb11e41-83d8-461d-8c0d-04cdd2f670e2</subsheetid><loginhibit /><preconditions><condition narrative="" /><condition narrative="" /></preconditions><display x="15" y="-195" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance to be released. The default value of zero indicates the currently active instance." stage="handle" /></inputs><onsuccess>1d0738a9-7841-446d-b3ed-1a4bafeccc1b</onsuccess></stage><stage stageid="dc556131-4dde-459f-9af8-8c854fcae760" name="End" type="End"><subsheetid>4fb11e41-83d8-461d-8c0d-04cdd2f670e2</subsheetid><loginhibit /><display x="15" y="-30" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="6da262c1-9a82-4bc8-9363-ede171f125e5" name="handle" type="Data"><subsheetid>4fb11e41-83d8-461d-8c0d-04cdd2f670e2</subsheetid><display x="-225" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="1d0738a9-7841-446d-b3ed-1a4bafeccc1b" name="CheckInstanceHandle" type="SubSheet"><subsheetid>4fb11e41-83d8-461d-8c0d-04cdd2f670e2</subsheetid><loginhibit /><display x="15" y="-150" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><onsuccess>2e67a2b9-10bf-4d4d-9bd9-db68edaf7662</onsuccess><processid>492548e8-2fa5-473e-9061-df8326d46e4c</processid></stage><stage stageid="2e67a2b9-10bf-4d4d-9bd9-db68edaf7662" name="Release Instance" type="Code"><subsheetid>4fb11e41-83d8-461d-8c0d-04cdd2f670e2</subsheetid><loginhibit /><display x="15" y="-90" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><onsuccess>dc556131-4dde-459f-9af8-8c854fcae760</onsuccess><code><![CDATA[ Dim current as Object = CurrentInstance Dim inst as Object = GetInstance(handle) ' Careful - sets the 'current instance' to inst HandleMap.Remove(handle) InstanceMap.Remove(inst) If Object.ReferenceEquals(inst, current) Then CurrentInstance = Nothing Else CurrentInstance = current End If ]]></code></stage><stage stageid="0f04ef58-eacb-4204-ba2b-d073285c2be8" name="Note1" type="Note"><subsheetid>859e3c31-acbc-48dd-8535-ef2ce9385d70</subsheetid><loginhibit /><narrative>Don't need to anything - a side-effect of the check is to set the current instance... makes it simple.</narrative><display x="150" y="-120" w="150" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="f0ee2a73-65b2-418e-8b77-6dc802046c5d" name="Attach" type="SubSheetInfo"><subsheetid>7ad81501-44a1-48ab-94fd-9b2c35ed20b8</subsheetid><narrative>Back-compatible link to 'Open Instance'. This opens the first running instance of Excel found and links to it in this object. Returns: - handle : Number : An integer with which the instance opened can be identified. - Enable Events : Flag : Indicates that events should be enabled / disabled on the attached instance - defaulted to True</narrative><display x="-210" y="-120" w="240" h="150" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="92e3475b-ed7d-4ae1-940c-7eb554a7cea8" name="Start" type="Start"><subsheetid>7ad81501-44a1-48ab-94fd-9b2c35ed20b8</subsheetid><loginhibit /><display x="-15" y="-150" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="flag" name="Enable Events" narrative="Flag to indicate that events should be enabled / disabled on the attached instance - defaulted to True" stage="Enable Events" /></inputs><onsuccess>ba67509b-7301-4ce1-a467-e9970249b392</onsuccess></stage><stage stageid="c74db74c-8822-4391-8593-d9919e357a5b" name="End" type="End"><subsheetid>7ad81501-44a1-48ab-94fd-9b2c35ed20b8</subsheetid><loginhibit /><display x="-15" y="-15" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="number" name="handle" narrative="The integer handle which identifies the excel instance in subsequent actions" stage="handle" /></outputs></stage><stage stageid="f68ab231-3cbb-423e-84de-9103b9f971f4" name="handle" type="Data"><subsheetid>7ad81501-44a1-48ab-94fd-9b2c35ed20b8</subsheetid><display x="-195" y="-15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="ba67509b-7301-4ce1-a467-e9970249b392" name="Open Instance" type="SubSheet"><subsheetid>7ad81501-44a1-48ab-94fd-9b2c35ed20b8</subsheetid><loginhibit /><display x="-15" y="-90" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="Workbook Name" narrative="The name of the workbook which should be opened. An empty value indicates that the first activated instance of Excel should be opened." expr="""" /><input type="flag" name="Enable Events?" narrative="Flag to indicate whether events (ie. macros) should be enabled on the given instance. Default is True" expr="[Enable Events]" /></inputs><outputs><output type="number" name="handle" narrative="The integer handle with which the instance can be identified in later actions." stage="handle" /></outputs><onsuccess>c74db74c-8822-4391-8593-d9919e357a5b</onsuccess><processid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</processid></stage><stage stageid="fa5aede4-db23-4781-8954-3baaf0fd0740" name="Attach to workbook" type="SubSheetInfo"><subsheetid>2b3544ad-af96-4f40-9b50-16dfbe0600f1</subsheetid><narrative>Back compatible link to 'Open instance' - attaches to the excel instance containing the current workbook. Note that if the instance containing the workbook could not be found, a new instance will be created. Params: - File name : Text : The name of the file in the instance that should be opened. - Enable Events : Flag : Indicates that events should be enabled / disabled on the attached instance - defaulted to True Returns: - handle : Number : The integer that can be used to reference this instance later.</narrative><display x="-195" y="-135" w="390" h="150" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="431ac081-4d84-414a-80dd-cb137dd67a73" name="Start" type="Start"><subsheetid>2b3544ad-af96-4f40-9b50-16dfbe0600f1</subsheetid><loginhibit /><preconditions><condition narrative="" /></preconditions><display x="60" y="-195" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="File name" narrative="The name of the file which should be opened" stage="filename" /><input type="flag" name="Enable Events" narrative="Flag to indicate that events should be enabled / disabled on the attached instance - defaulted to True" stage="Enable Events" /></inputs><onsuccess>4a719c51-85b9-4750-9593-bf0e3166edfc</onsuccess></stage><stage stageid="ba3c2775-b5ac-44a8-be6b-05befaea619b" name="End" type="End"><subsheetid>2b3544ad-af96-4f40-9b50-16dfbe0600f1</subsheetid><loginhibit /><display x="60" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="number" name="handle" narrative="The integer handle indentifying the instance opened. This can be used in subsequent actions to identify the instance." stage="handle" /></outputs></stage><stage stageid="0283fb0e-8dda-4956-b434-ea1d6c99e063" name="handle" type="Data"><subsheetid>2b3544ad-af96-4f40-9b50-16dfbe0600f1</subsheetid><display x="-195" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="4a719c51-85b9-4750-9593-bf0e3166edfc" name="Open Instance" type="SubSheet"><subsheetid>2b3544ad-af96-4f40-9b50-16dfbe0600f1</subsheetid><loginhibit /><display x="60" y="-90" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="Workbook Name" narrative="The name of the workbook which should be opened. An empty value indicates that the first activated instance of Excel should be opened." expr="[filename]" /><input type="flag" name="Enable Events?" narrative="Flag to indicate whether events (ie. macros) should be enabled on the given instance. Default is True" expr="[Enable Events]" /></inputs><outputs><output type="number" name="handle" narrative="The integer handle with which the instance can be identified in later actions." stage="handle" /></outputs><onsuccess>ba3c2775-b5ac-44a8-be6b-05befaea619b</onsuccess><processid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</processid></stage><stage stageid="c99c412d-dbb6-4a6a-a7e2-9834a74052d0" name="filename" type="Data"><subsheetid>2b3544ad-af96-4f40-9b50-16dfbe0600f1</subsheetid><display x="-195" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="9a734ecf-7e58-4aa4-b7ff-5aa4494ec687" name="cellref empty?" type="Decision"><subsheetid>0e031661-2f5e-4cb2-949b-97babe59ff81</subsheetid><loginhibit /><display x="15" y="-90" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[cellref]=""" /><ontrue>bed65abf-b1ad-4f7e-83be-c8a96e3ea162</ontrue><onfalse>39135f99-dd54-4a2b-bff2-555714753a6d</onfalse></stage><stage stageid="bed65abf-b1ad-4f7e-83be-c8a96e3ea162" name="anchor3" type="Anchor"><subsheetid>0e031661-2f5e-4cb2-949b-97babe59ff81</subsheetid><loginhibit /><display x="105" y="-90" w="10" h="10" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>b98f8e72-e995-42a4-b3f9-df0acf2a5944</onsuccess></stage><stage stageid="b98f8e72-e995-42a4-b3f9-df0acf2a5944" name="anchor4" type="Anchor"><subsheetid>0e031661-2f5e-4cb2-949b-97babe59ff81</subsheetid><loginhibit /><display x="105" y="0" w="10" h="10" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>a04a5ea1-798c-4659-ac77-0c966c305cba</onsuccess></stage><stage stageid="250bb1db-ca8e-4edb-b9a4-52fa39261823" name="Go To Cell" type="SubSheet"><subsheetid>17f8ab72-203a-42d4-a59b-a073ccd57bb0</subsheetid><loginhibit /><display x="15" y="-45" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required cell should be navigated to. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Cell Reference" narrative="The cell reference on the currently active sheet within the specified instance which should be navigated to." expr="[cellref]" /></inputs><onsuccess>94dc11fe-505e-4544-a26b-80d3d88d0951</onsuccess><processid>ed502669-4207-4c88-895d-8c58ec321578</processid></stage><stage stageid="29427d7f-a2d9-4b65-b6c4-773881bd285d" name="cellref empty?" type="Decision"><subsheetid>17f8ab72-203a-42d4-a59b-a073ccd57bb0</subsheetid><loginhibit /><display x="15" y="-90" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[cellref]=""" /><ontrue>e743b184-cb2f-43cb-83c1-b99654286d3d</ontrue><onfalse>250bb1db-ca8e-4edb-b9a4-52fa39261823</onfalse></stage><stage stageid="e743b184-cb2f-43cb-83c1-b99654286d3d" name="anchor3" type="Anchor"><subsheetid>17f8ab72-203a-42d4-a59b-a073ccd57bb0</subsheetid><loginhibit /><display x="105" y="-90" w="10" h="10" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>dea637ce-5933-4805-94a4-f2bbd9b99d0b</onsuccess></stage><stage stageid="dea637ce-5933-4805-94a4-f2bbd9b99d0b" name="anchor4" type="Anchor"><subsheetid>17f8ab72-203a-42d4-a59b-a073ccd57bb0</subsheetid><loginhibit /><display x="105" y="0" w="10" h="10" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>94dc11fe-505e-4544-a26b-80d3d88d0951</onsuccess></stage><stage stageid="bcf597f1-97f7-449c-8865-ff8ca139dd6c" name="Get Active Cell Value" type="SubSheetInfo"><subsheetid>d96215cc-750e-4616-8852-1d4d44a9f21b</subsheetid><narrative>Gets the value of the currently active cell.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="b69207e1-2811-4150-a61f-4746ef8489d4" name="Start" type="Start"><subsheetid>d96215cc-750e-4616-8852-1d4d44a9f21b</subsheetid><loginhibit /><display x="-45" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the cell whose value is required resides. The default of zero indicates the currently active instance." stage="handle" /></inputs><onsuccess>af8aab5e-4539-4acc-a5cc-1bd632282587</onsuccess></stage><stage stageid="73e8408e-ff97-4d9f-b0e0-5a0e844b731c" name="End" type="End"><subsheetid>d96215cc-750e-4616-8852-1d4d44a9f21b</subsheetid><loginhibit /><display x="-45" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="Value" narrative="The (unformatted) value found at the specified cell." stage="Value" /></outputs></stage><stage stageid="af8aab5e-4539-4acc-a5cc-1bd632282587" name="Get Active Cell Value" type="SubSheet"><subsheetid>d96215cc-750e-4616-8852-1d4d44a9f21b</subsheetid><loginhibit /><display x="-45" y="-60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance from which the required cell value should be retrieved. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Cell Reference" narrative="The cell reference indicating which cell's value should be retrieved. An empty value indicates that the currently active cell's value should be retrieved." expr="""" /></inputs><outputs><output type="text" name="Value" narrative="The (unformatted) value from the required cell." stage="Value" /></outputs><onsuccess>73e8408e-ff97-4d9f-b0e0-5a0e844b731c</onsuccess><processid>0e031661-2f5e-4cb2-949b-97babe59ff81</processid></stage><stage stageid="88d7196d-2443-4439-8261-6700e9673d0a" name="handle" type="Data"><subsheetid>d96215cc-750e-4616-8852-1d4d44a9f21b</subsheetid><display x="-195" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="e4cdc61b-a1e1-461e-8d91-a98cd40a2c5a" name="Value" type="Data"><subsheetid>d96215cc-750e-4616-8852-1d4d44a9f21b</subsheetid><display x="-195" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="69cd13bc-f818-4a5b-be64-b6fb7de62c61" name="Create Worksheet" type="SubSheetInfo"><subsheetid>f78a5f80-c2d5-4e9b-ae08-a56fb8007b18</subsheetid><narrative>Creates a new worksheet in the specified workbook with the given name. If a sheet with the given name already exists, this will activate that sheet. Params: - handle : Number : The number identifying the instance required. - Workbook Name : Text : The name of the workbook to add it to. An empty string (the default) indicates the active workbook in the instance. - Worksheet Name : Text : The name of the worksheet that is required. Note that if the name matches a worksheet already in the workbook a new worksheet will not be created, but that worksheet will be activated. Exceptions: - Bad Handle : If the given handle did not correspond to an instance. - Workbook Not Found : If the given workbook did not exist on the specified instance.</narrative><display x="-285" y="-165" w="420" h="210" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="2a0c385f-fe76-4eb3-a36f-4936eb7ac84a" name="Start" type="Start"><subsheetid>f78a5f80-c2d5-4e9b-ae08-a56fb8007b18</subsheetid><loginhibit /><display x="-30" y="-240" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the worksheet should be created. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Workbook Name" narrative="The name of the workbook in which the sheet should be created - The default empty value indicates the currently active workbook on the specified instance." stage="workbookname" /><input type="text" name="Worksheet Name" narrative="The name of the sheet which should be activated. The default empty text value indicates that the currently active sheet should be, er, activated, making this a no-op." stage="worksheetname" /></inputs><onsuccess>89240340-492e-44ab-9fed-c64a6d3fffdf</onsuccess></stage><stage stageid="5d624e42-813e-467d-bda1-ebb3e410045c" name="End" type="End"><subsheetid>f78a5f80-c2d5-4e9b-ae08-a56fb8007b18</subsheetid><loginhibit /><display x="-30" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="89240340-492e-44ab-9fed-c64a6d3fffdf" name="Activate Worksheet" type="SubSheet"><subsheetid>f78a5f80-c2d5-4e9b-ae08-a56fb8007b18</subsheetid><loginhibit /><display x="-30" y="-15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="Workbook Name" expr="[workbookname]" /><input type="flag" name="Create If Missing?" expr="True" /><input type="text" name="Worksheet Name" expr="[worksheetname]" /></inputs><onsuccess>5d624e42-813e-467d-bda1-ebb3e410045c</onsuccess><processid>733c2840-8162-465a-a8f2-7d023087c369</processid></stage><stage stageid="ab7509fd-0572-44d9-9050-b9c9907c49ac" name="handle" type="Data"><subsheetid>f78a5f80-c2d5-4e9b-ae08-a56fb8007b18</subsheetid><display x="-195" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="544db1ef-b84c-403c-b4ee-de2d660ec253" name="worksheetname" type="Data"><subsheetid>f78a5f80-c2d5-4e9b-ae08-a56fb8007b18</subsheetid><display x="-195" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="df17296d-4f63-46cf-bcd9-4acd7eefed34" name="workbookname" type="Data"><subsheetid>f78a5f80-c2d5-4e9b-ae08-a56fb8007b18</subsheetid><display x="-195" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="64089c9a-4a30-4db5-bf87-7ba017ba54e7" name="Write Collection" type="SubSheetInfo"><subsheetid>0dbe03a0-e259-47ab-bee7-7dec41ae32e7</subsheetid><narrative>Writes the given collection into the specified sheet.</narrative><display x="-195" y="-105" w="180" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="a1ab274b-c2fb-47c7-94f8-292590df5765" name="Start" type="Start"><subsheetid>0dbe03a0-e259-47ab-bee7-7dec41ae32e7</subsheetid><loginhibit /><display x="45" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the specified collection should be written. The default of zero indicates the currently active instance." stage="handle" /><input type="collection" name="Collection" narrative="The collection containing the data which should be written to the worksheet." stage="collection" /><input type="text" name="Workbook Name" narrative="The name of the workbook within which the data should be written. The default empty value indicates the current workbook within the specified instance." stage="workbookname" /><input type="text" name="Worksheet Name" narrative="The name of the worksheet on which the given data should be written. The default empty value indicates the current sheet within the specified workbook." stage="worksheetname" /><input type="text" name="Cell Reference" narrative="The reference at which the collection should be written." stage="cellref" /><input type="flag" name="Include Column Names" narrative="True to indicate that the column names from the collection should be written out as the first row; False to ignore the column names and just write out the data." stage="includecolnames" /></inputs><onsuccess>a3a318c6-e218-4e78-a818-1673f90541b3</onsuccess></stage><stage stageid="8819df51-0132-421d-baae-b24b5082f131" name="End" type="End"><subsheetid>0dbe03a0-e259-47ab-bee7-7dec41ae32e7</subsheetid><loginhibit /><display x="45" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="85afbd6d-2c6e-42f8-8e71-7858a8488167" name="handle" type="Data"><subsheetid>0dbe03a0-e259-47ab-bee7-7dec41ae32e7</subsheetid><display x="-255" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="bc024959-b016-4b16-93a8-e230e4ab936d" name="collection" type="Collection"><subsheetid>0dbe03a0-e259-47ab-bee7-7dec41ae32e7</subsheetid><display x="-135" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>collection</datatype><private /><alwaysinit /></stage><stage stageid="71e25266-b464-4b47-b6a7-c8a70cff7514" name="worksheetname" type="Data"><subsheetid>0dbe03a0-e259-47ab-bee7-7dec41ae32e7</subsheetid><display x="-255" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="e5f2a253-bee4-4ee0-9d8c-ab780265b5db" name="workbookname" type="Data"><subsheetid>0dbe03a0-e259-47ab-bee7-7dec41ae32e7</subsheetid><display x="-255" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="98c5b0c8-0c25-4972-b9c8-6057e6841ce5" name="includecolnames" type="Data"><subsheetid>0dbe03a0-e259-47ab-bee7-7dec41ae32e7</subsheetid><display x="-135" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="a3a318c6-e218-4e78-a818-1673f90541b3" name="Activate Worksheet" type="SubSheet"><subsheetid>0dbe03a0-e259-47ab-bee7-7dec41ae32e7</subsheetid><loginhibit /><display x="45" y="-75" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the worksheet which should be activated resides. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Workbook Name" narrative="The name of the workbook in which the sheet exists - The default empty value indicates the currently active workbook on the specified instance." expr="[workbookname]" /><input type="text" name="Worksheet Name" narrative="The name of the sheet which should be activated. The default empty text value indicates that the currently active sheet should be, er, activated, making this a no-op." expr="[worksheetname]" /><input type="flag" name="Create If Missing?" narrative="True to create the sheet if it isn't present on the specified workbook; False to not do so." expr="False" /></inputs><onsuccess>f2ebff4d-5325-45e8-945d-73006f5bd7ce</onsuccess><processid>733c2840-8162-465a-a8f2-7d023087c369</processid></stage><stage stageid="f2ebff4d-5325-45e8-945d-73006f5bd7ce" name="WriteColl" type="Code"><subsheetid>0dbe03a0-e259-47ab-bee7-7dec41ae32e7</subsheetid><loginhibit /><display x="45" y="-15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /><input type="text" name="worksheetname" expr="[worksheetname]" /><input type="text" name="cellref" expr="[cellref]" /><input type="collection" name="collection" expr="[collection]" /><input type="flag" name="includecolnames" expr="[includecolnames]" /></inputs><onsuccess>8819df51-0132-421d-baae-b24b5082f131</onsuccess><code><![CDATA[' Get to the cell Dim ws As Object = GetWorksheet(handle, workbookname, worksheetname) Dim origin As Object = ws.Range(cellref, cellref) Dim cell As Object = origin Dim colInd As Integer = 0, rowInd As Integer = 0 ' Offsets from the origin cell ' Deal with the column names first If includecolnames Then For Each col As DataColumn In Collection.Columns Try cell = origin.Offset(rowInd, colInd) Catch ex As Exception ' Hit the edge. Exit For End Try SetProperty(cell, "Value", col.ColumnName) colInd += 1 Next rowInd += 1 End If ' Now for the data itself For Each row As DataRow In Collection.Rows colInd = 0 For Each col As DataColumn In Collection.Columns Try cell = origin.Offset(rowInd, colInd) Catch ex As Exception ' Hit the edge. Exit For End Try 'MessageBox.Show("RowOffset:" & rowInd & "; ColOffset:" & colInd & "; cell: " & cell.Address(False,False)) SetProperty(cell, "Value", row(col)) colInd += 1 Next rowInd += 1 Next]]></code></stage><stage stageid="fb353c57-7a8c-4ccb-9428-94761a643715" name="cellref" type="Data"><subsheetid>0dbe03a0-e259-47ab-bee7-7dec41ae32e7</subsheetid><display x="-135" y="-30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="add1def4-fc64-4534-bbb0-d3ac07611a85" name="anchor5" type="Anchor"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="15" y="60" w="10" h="10" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>108c176a-92d1-4f50-b460-ac6a3f0dac25</onsuccess></stage><stage stageid="51d7d624-e8bf-42b7-afdd-8d090b584865" name="anchor6" type="Anchor"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="195" y="60" w="10" h="10" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>add1def4-fc64-4534-bbb0-d3ac07611a85</onsuccess></stage><stage stageid="4be7292e-9eb1-43f7-9e87-3ae906bd79ed" name="savechanges" type="Data"><subsheetid>6ec3006a-6553-4526-b522-32526c4aa3cc</subsheetid><display x="-210" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>False</initialvalue><private /><alwaysinit /></stage><stage stageid="0f8fc913-9174-4304-823f-d18ffae7217a" name="state = Lower(state)" type="Calculation"><subsheetid>d4998c94-d432-4713-81a5-e902535089c6</subsheetid><loginhibit /><display x="-30" y="-90" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>4686174e-a845-4f2b-9a0a-70325a2df399</onsuccess><calculation expression="Lower([state])" stage="state" /></stage><stage stageid="27e7ff80-4437-42a3-ba14-e499be5bc0e5" name="sheetexists" type="Data"><subsheetid>733c2840-8162-465a-a8f2-7d023087c369</subsheetid><display x="-240" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="3a854b87-0e5a-46dd-8181-a58f97555aa8" name="Sheet Existed?" type="Decision"><subsheetid>733c2840-8162-465a-a8f2-7d023087c369</subsheetid><loginhibit /><display x="15" y="-45" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[sheetexists]" /><ontrue>ddfe7f54-b5c2-410a-8a5d-3c2b52de9550</ontrue><onfalse>9bc52652-698b-46ca-ba0d-ebb170432963</onfalse></stage><stage stageid="9bc52652-698b-46ca-ba0d-ebb170432963" name="No Such Sheet" type="Exception"><subsheetid>733c2840-8162-465a-a8f2-7d023087c369</subsheetid><display x="150" y="-45" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="Worksheet Not Found" detail=""No worksheet was found with the name '" & [worksheetname] & "' on the workbook '" & [workbookname] & "' within the instance with the handle: " & [handle]" /></stage><stage stageid="b396c564-6c31-4c6f-be0a-0cc64f178a19" name="sheetexisted" type="Data"><subsheetid>37a2442f-8e22-4749-8b44-4ef2980f28a6</subsheetid><display x="-195" y="135" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="56c2259b-9d71-4364-bede-79b4af1e3e96" name="Sheet Existed?" type="Decision"><subsheetid>37a2442f-8e22-4749-8b44-4ef2980f28a6</subsheetid><loginhibit /><display x="15" y="30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[sheetexisted]" /><ontrue>6b35d569-0eb2-4c01-bb88-e5f7c41bde81</ontrue><onfalse>091e0364-11db-49d4-8e94-8f5f9396fa9c</onfalse></stage><stage stageid="091e0364-11db-49d4-8e94-8f5f9396fa9c" name="No Such Sheet" type="Exception"><subsheetid>37a2442f-8e22-4749-8b44-4ef2980f28a6</subsheetid><display x="150" y="30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="Worksheet Not Found" detail=""No worksheet was found with the name '" & [worksheetname] & "' on the workbook '" & [workbookname] & "' within the instance with the handle: " & [handle]" /></stage><stage stageid="b6d0da26-0322-4b43-b1d5-304466ff29fb" name="Sheet Exists?" type="Decision"><subsheetid>8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30</subsheetid><loginhibit /><display x="15" y="-15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[sheetexists]" /><ontrue>cf5b0880-2cac-4221-946a-e4e3d7f0bc99</ontrue><onfalse>7e8fce63-9130-4c0f-baea-ea8be793c57d</onfalse></stage><stage stageid="7e8fce63-9130-4c0f-baea-ea8be793c57d" name="No Such Sheet" type="Exception"><subsheetid>8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30</subsheetid><display x="165" y="-15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="Worksheet Not Found" detail=""No worksheet was found with the name '" & [worksheetname] & "' on the workbook '" & [workbookname] & "' within the instance with the handle: " & [handle]" /></stage><stage stageid="286f9733-2a26-4c00-a7ff-7ac289086919" name="sheetexists" type="Data"><subsheetid>8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30</subsheetid><display x="-195" y="105" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="5cb56c9a-aa29-4ed4-84e1-9a65976ba50f" name="Does sheet exist?" type="Decision"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><loginhibit /><display x="105" y="-90" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[sheetexists]" /><ontrue>859597f9-d048-46a3-bf99-2f3f6588c2c5</ontrue><onfalse>2b8672dd-8330-4c2d-a522-9f12c9e27ba2</onfalse></stage><stage stageid="2b8672dd-8330-4c2d-a522-9f12c9e27ba2" name="No Such Sheet" type="Exception"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><display x="300" y="-90" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="Worksheet Not Found" detail=""No worksheet was found with the name '" & [worksheetname] & "' on the workbook '" & [workbookname] & "' within the instance with the handle: " & [handle]" /></stage><stage stageid="c50f1065-0989-47f5-aad4-c66396e462e0" name="sheetexists" type="Data"><subsheetid>f743df98-2e69-4559-89b6-32ef6637618d</subsheetid><display x="-285" y="105" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="68b64b13-62f8-4431-94c4-62b7ff1f1c2c" name="Get Worksheet as Collection Offset" type="SubSheetInfo"><subsheetid>92799072-140a-4621-89cd-2da12475dcda</subsheetid><narrative>Gets the current worksheet into a collection. This will read the worksheet and store the contents into the collection. The offset function allows a starting cell to be specified.</narrative><display x="-330" y="-705" w="210" h="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="164e0a2b-6c31-48ce-8172-7fb4edd3dbb3" name="End" type="End"><subsheetid>92799072-140a-4621-89cd-2da12475dcda</subsheetid><loginhibit /><display x="-120" y="-480" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="collection" name="Data" narrative="The data output" stage="worksheetcollection" /></outputs></stage><stage stageid="0b6697a7-4aa1-4ec1-86db-bc41f3ca9d5e" name="handle" type="Data"><subsheetid>92799072-140a-4621-89cd-2da12475dcda</subsheetid><display x="-330" y="-600" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="2c25e33f-7af9-4998-8c1a-4029c0e2af9e" name="workbookname" type="Data"><subsheetid>92799072-140a-4621-89cd-2da12475dcda</subsheetid><display x="-330" y="-555" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="5ee01090-4b0b-4e85-9643-1f3b40d182e2" name="Start" type="Start"><subsheetid>92799072-140a-4621-89cd-2da12475dcda</subsheetid><loginhibit /><display x="-120" y="-705" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the worksheet which should be retrieved resides. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Workbook Name" narrative="The name of the workbook which contains the sheet required. The default empty text indicates the currently active workbook on the specified instance." stage="workbookname" /><input type="text" name="Worksheet Name" narrative="The name of the worksheet within the specified workbook which should be written to a collection. The default empty text indicates the currently active worksheet within the specified workbook." stage="worksheetname" /><input type="text" name="StartCell" narrative="The starting cell of the range of interest" stage="Start Cell" /><input type="flag" name="Use Header" narrative="This flag states if the excel collection uses a header, or not." stage="Use Header" /></inputs><onsuccess>8f50a819-e470-4c0e-97d5-08bd0f705682</onsuccess></stage><stage stageid="a755a822-d485-45ea-8d7d-426646b4aec0" name="GetWorksheetAsCollectionOffset" type="Code"><subsheetid>92799072-140a-4621-89cd-2da12475dcda</subsheetid><loginhibit /><display x="-120" y="-585" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /><input type="text" name="worksheetname" expr="[worksheetname]" /><input type="text" name="Start Cell" expr="[Start Cell]" /><input type="flag" name="Use Header" expr="[Use Header]" /></inputs><outputs><output type="collection" name="worksheetcollection" stage="worksheetcollection" /></outputs><onsuccess>164e0a2b-6c31-48ce-8172-7fb4edd3dbb3</onsuccess><code><![CDATA[ Dim ws as Object = GetWorksheet( _ handle, workbookname, worksheetname) ws.Activate() Dim cell as Object = ws.Range(Start_Cell) Dim r as Object = _ ws.UsedRange.Offset(cell.row-1,cell.column-1) r.Select() r.Copy() Dim data As String = GetClipboardText() worksheetCollection = ParseDelimSeparatedVariables( _ data, vbTab, Nothing, Use_Header) ]]></code></stage><stage stageid="8f50a819-e470-4c0e-97d5-08bd0f705682" name="CheckInstanceAndWorkbook" type="SubSheet"><subsheetid>92799072-140a-4621-89cd-2da12475dcda</subsheetid><loginhibit /><display x="-120" y="-645" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /></inputs><onsuccess>a755a822-d485-45ea-8d7d-426646b4aec0</onsuccess><processid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</processid></stage><stage stageid="f82cf955-6669-494b-b6a1-866974c7cc74" name="worksheetname" type="Data"><subsheetid>92799072-140a-4621-89cd-2da12475dcda</subsheetid><display x="-330" y="-510" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="9b329ff1-b62a-41eb-9503-6673f300eb68" name="worksheetcollection" type="Collection"><subsheetid>92799072-140a-4621-89cd-2da12475dcda</subsheetid><display x="90" y="-600" w="150" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>collection</datatype><private /><alwaysinit /></stage><stage stageid="3f4b3c3e-515f-4ee7-9e70-5c76c0fb3044" name="Set Events Enabled" type="SubSheetInfo"><subsheetid>69db5cf5-4908-49c7-9027-8f48e26e5b27</subsheetid><narrative>Enables or disables the events on the specified excel instance.</narrative><display x="-195" y="-105" w="180" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="cb955f7e-320d-42d1-8dad-26b8f55d083b" name="Start" type="Start"><subsheetid>69db5cf5-4908-49c7-9027-8f48e26e5b27</subsheetid><loginhibit /><display x="0" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer identifier for the instance on which the events should be enabled / disabled. Zero indicates the 'current active' instance." stage="handle" /><input type="flag" name="Enable Events" narrative="True to enable events on the specified instance, False to disable events" stage="Enable Events" /></inputs><onsuccess>68483479-6865-4fd5-9a77-f4392c4ade9e</onsuccess></stage><stage stageid="3969dd45-fdea-4671-879e-461a56f312be" name="End" type="End"><subsheetid>69db5cf5-4908-49c7-9027-8f48e26e5b27</subsheetid><loginhibit /><display x="0" y="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="68483479-6865-4fd5-9a77-f4392c4ade9e" name="CheckInstanceHandle" type="SubSheet"><subsheetid>69db5cf5-4908-49c7-9027-8f48e26e5b27</subsheetid><loginhibit /><display x="0" y="-75" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle representing the instance." expr="[handle]" /></inputs><onsuccess>21682417-b503-44b4-92f2-a3c80b4fad14</onsuccess><processid>492548e8-2fa5-473e-9061-df8326d46e4c</processid></stage><stage stageid="45553fd7-b75b-4fee-8961-aff490d121b3" name="Enable Events" type="Data"><subsheetid>69db5cf5-4908-49c7-9027-8f48e26e5b27</subsheetid><display x="-195" y="30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>True</initialvalue><private /><alwaysinit /></stage><stage stageid="21682417-b503-44b4-92f2-a3c80b4fad14" name="Enable Events" type="Code"><subsheetid>69db5cf5-4908-49c7-9027-8f48e26e5b27</subsheetid><loginhibit /><display x="0" y="-30" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="flag" name="enable" expr="[Enable Events]" /></inputs><onsuccess>3969dd45-fdea-4671-879e-461a56f312be</onsuccess><code><![CDATA[ GetInstance(handle).EnableEvents = enable]]></code></stage><stage stageid="3fd7c1fd-f40f-451d-885e-3f5e34c62b77" name="handle" type="Data"><subsheetid>69db5cf5-4908-49c7-9027-8f48e26e5b27</subsheetid><display x="-195" y="-15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="cb99ca56-7dc9-4a0d-860e-651747237d8f" name="Enable Events" type="Data"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><display x="-210" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>True</initialvalue><private /><alwaysinit /></stage><stage stageid="7fb1ba2f-64f1-417b-9b97-479efb954a9d" name="anchor8" type="Anchor"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="375" y="60" w="10" h="10" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>51d7d624-e8bf-42b7-afdd-8d090b584865</onsuccess></stage><stage stageid="108c176a-92d1-4f50-b460-ac6a3f0dac25" name="Enable/Disable Events" type="SubSheet"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="15" y="105" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer identifier for the instance on which the events should be enabled / disabled. Zero indicates the 'current active' instance." expr="[handle]" /><input type="flag" name="Enable Events" narrative="True to enable events on the specified instance, False to disable events" expr="[Enable Events]" /></inputs><onsuccess>754832af-1144-48ff-8ab0-bb6c86d3f78e</onsuccess><processid>69db5cf5-4908-49c7-9027-8f48e26e5b27</processid></stage><stage stageid="17b0edcc-4892-4e42-93c9-9438a160ed66" name="Enable Events" type="Data"><subsheetid>7ad81501-44a1-48ab-94fd-9b2c35ed20b8</subsheetid><display x="-195" y="30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>True</initialvalue><private /><alwaysinit /></stage><stage stageid="e24f71a3-1760-49ce-bbcb-4750671f20ad" name="Enable Events" type="Data"><subsheetid>2b3544ad-af96-4f40-9b50-16dfbe0600f1</subsheetid><display x="-195" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>True</initialvalue><private /><alwaysinit /></stage><stage stageid="9773e311-bcc9-4426-999e-7c586da425c5" name="Enable Events" type="Data"><subsheetid>99e648cc-a136-471c-8424-19071c0fd9e7</subsheetid><display x="-255" y="15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>True</initialvalue><private /><alwaysinit /></stage><stage stageid="a13edde2-3883-4007-9719-92f0e1009ddd" name="Set Events Enabled" type="SubSheet"><subsheetid>99e648cc-a136-471c-8424-19071c0fd9e7</subsheetid><loginhibit /><display x="-15" y="-60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer identifier for the instance on which the events should be enabled / disabled. Zero indicates the 'current active' instance." expr="[handle]" /><input type="flag" name="Enable Events" narrative="True to enable events on the specified instance, False to disable events" expr="[Enable Events]" /></inputs><onsuccess>d337a2cf-1121-4619-a1b1-f7f19bea974e</onsuccess><processid>69db5cf5-4908-49c7-9027-8f48e26e5b27</processid></stage><stage stageid="7c3abf99-a3ae-44c2-b834-ad050b20a0eb" name="Enable Events" type="Data"><subsheetid>2fb01e3f-e275-43bc-83eb-579001da335b</subsheetid><display x="-210" y="105" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>True</initialvalue><private /><alwaysinit /></stage><stage stageid="6c2fa22d-1876-46b7-92eb-cf8343d0911f" name="Set Events Enabled" type="SubSheet"><subsheetid>2fb01e3f-e275-43bc-83eb-579001da335b</subsheetid><loginhibit /><display x="15" y="0" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer identifier for the instance on which the events should be enabled / disabled. Zero indicates the 'current active' instance." expr="[handle]" /><input type="flag" name="Enable Events" narrative="True to enable events on the specified instance, False to disable events" expr="[Enable Events]" /></inputs><onsuccess>18a306bf-d323-4c4e-83b5-4b226773161c</onsuccess><processid>69db5cf5-4908-49c7-9027-8f48e26e5b27</processid></stage><stage stageid="e13408b2-c348-4d32-9ca3-e878db7cd165" name="Start Cell" type="Data"><subsheetid>92799072-140a-4621-89cd-2da12475dcda</subsheetid><display x="-45" y="-705" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="614b5c49-3b88-427a-9513-c3048d8b716d" name="Get Worksheet Names" type="SubSheetInfo"><subsheetid>becd6faa-f5c0-4d3a-a48a-cb54d3aa8909</subsheetid><narrative>Gets the name of the worksheets.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="ef85b34d-5145-4f90-96a4-0f1abc4c4889" name="End" type="End"><subsheetid>becd6faa-f5c0-4d3a-a48a-cb54d3aa8909</subsheetid><loginhibit /><display x="150" y="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="collection" name="Worksheet Names" narrative="A collection of worksheet names found in the specified workbook" stage="Worksheet Names" /></outputs></stage><stage stageid="7e4ae954-86d5-4183-88b2-d307fecfc6a9" name="Start" type="Start"><subsheetid>becd6faa-f5c0-4d3a-a48a-cb54d3aa8909</subsheetid><loginhibit /><display x="150" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the number of rows is required. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Workbook Name" narrative="The name of the workbook." stage="workbookname" /></inputs><onsuccess>9bc4bc33-6a3a-43e0-86e0-7b209978508a</onsuccess></stage><stage stageid="9bc4bc33-6a3a-43e0-86e0-7b209978508a" name="CheckInstanceAndWorkbook" type="SubSheet"><subsheetid>becd6faa-f5c0-4d3a-a48a-cb54d3aa8909</subsheetid><loginhibit /><display x="150" y="-45" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /></inputs><onsuccess>bbd37070-c589-4f9c-8d03-11f2982c59f4</onsuccess><processid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</processid></stage><stage stageid="bbd37070-c589-4f9c-8d03-11f2982c59f4" name="Get Worksheets" type="Code"><subsheetid>becd6faa-f5c0-4d3a-a48a-cb54d3aa8909</subsheetid><loginhibit /><display x="150" y="15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /></inputs><outputs><output type="collection" name="Worksheet Names" stage="Worksheet Names" /></outputs><onsuccess>ef85b34d-5145-4f90-96a4-0f1abc4c4889</onsuccess><code><![CDATA[Dim wb As Object = GetWorkbook(Handle, WorkbookName) Dim sheets as Object = wb.Sheets Worksheet_Names = New DataTable() Worksheet_Names.Columns.Add("Name", GetType(String)) If sheets IsNot Nothing Then For Each sheet as Object in sheets Worksheet_Names.Rows.Add(New Object() {sheet.Name}) Next End If]]></code></stage><stage stageid="cff86abf-c0f2-493d-942f-759ce2830ff8" name="handle" type="Data"><subsheetid>becd6faa-f5c0-4d3a-a48a-cb54d3aa8909</subsheetid><display x="-135" y="0" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="e5d53720-b610-4e5c-bf49-94cbcaf29e20" name="workbookname" type="Data"><subsheetid>becd6faa-f5c0-4d3a-a48a-cb54d3aa8909</subsheetid><display x="-135" y="45" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="5bd45f86-2f78-4a96-8e74-62414e4094e7" name="Worksheet Names" type="Collection"><subsheetid>becd6faa-f5c0-4d3a-a48a-cb54d3aa8909</subsheetid><display x="255" y="15" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>collection</datatype><private /><alwaysinit /></stage><stage stageid="9d637f02-8e13-4c65-a606-5756018a9e8c" name="Worksheet Exists" type="SubSheetInfo"><subsheetid>eacc4634-9985-4a1d-9773-8f79928708ee</subsheetid><narrative>Checks if a worksheet exists in a workbook.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="54725352-a686-4ebc-88d8-80fa81af39bc" name="End" type="End"><subsheetid>eacc4634-9985-4a1d-9773-8f79928708ee</subsheetid><loginhibit /><display x="15" y="225" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="flag" name="Worksheet Exists" narrative="Indicates whether or not the named worksheet exists" stage="Worksheet Exists" /></outputs></stage><stage stageid="4cd78f5f-29a7-4f71-ab51-5c93e2e50ba3" name="Start" type="Start"><subsheetid>eacc4634-9985-4a1d-9773-8f79928708ee</subsheetid><loginhibit /><display x="105" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the number of rows is required. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Workbook Name" narrative="The name of the workbook on which the number of rows is required. The default empty text value indicates the currently active workbook on the specified instance." stage="workbookname" /><input type="text" name="Worksheet Name" narrative="The name of the worksheet of interest; it will be checked for existence" stage="Worksheet Name" /></inputs><onsuccess>b4bad8df-ac04-4c0f-88cf-21bd3dc6707a</onsuccess></stage><stage stageid="4126c650-c062-413d-b6b3-501c8743b400" name="handle" type="Data"><subsheetid>eacc4634-9985-4a1d-9773-8f79928708ee</subsheetid><display x="-180" y="0" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="a19213a7-dbb4-4a78-b929-7c0ec2f48fa7" name="workbookname" type="Data"><subsheetid>eacc4634-9985-4a1d-9773-8f79928708ee</subsheetid><display x="-180" y="45" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="b4bad8df-ac04-4c0f-88cf-21bd3dc6707a" name="Get Worksheet Names" type="SubSheet"><subsheetid>eacc4634-9985-4a1d-9773-8f79928708ee</subsheetid><loginhibit /><display x="105" y="-45" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the number of rows is required. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Workbook Name" narrative="The name of the workbook on which the number of rows is required. The default empty text value indicates the currently active workbook on the specified instance." expr="[workbookname]" /></inputs><outputs><output type="collection" name="Worksheet Names" narrative="A collection of worksheet names found in the specified workbook" stage="Worksheet Names" /></outputs><onsuccess>3124d4f1-6d19-450e-8d71-01e6c2cac8d9</onsuccess><processid>becd6faa-f5c0-4d3a-a48a-cb54d3aa8909</processid></stage><stage stageid="920cf97d-74a9-441c-9e2b-2c47c023ac33" name="Worksheet Names" type="Collection"><subsheetid>eacc4634-9985-4a1d-9773-8f79928708ee</subsheetid><display x="255" y="-45" w="120" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>collection</datatype><private /><alwaysinit /></stage><stage stageid="3124d4f1-6d19-450e-8d71-01e6c2cac8d9" name="For Each Name" type="LoopStart"><subsheetid>eacc4634-9985-4a1d-9773-8f79928708ee</subsheetid><loginhibit /><display x="105" y="45" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>0e40b339-b952-445b-a957-6d2d0a1bdbac</onsuccess><groupid>7adde929-95a8-4bdb-8362-2dcf58807cb2</groupid><looptype>ForEach</looptype><loopdata>Worksheet Names</loopdata></stage><stage stageid="27d57e09-d2fa-496d-a5c6-d382be881ad1" name="Next" type="LoopEnd"><subsheetid>eacc4634-9985-4a1d-9773-8f79928708ee</subsheetid><loginhibit /><display x="105" y="135" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>aea2b1ba-e24b-4929-a0be-bc2ad811f277</onsuccess><groupid>7adde929-95a8-4bdb-8362-2dcf58807cb2</groupid></stage><stage stageid="4198f8b9-1418-4bbc-a984-4049f1b78df6" name="Worksheet Name" type="Data"><subsheetid>eacc4634-9985-4a1d-9773-8f79928708ee</subsheetid><display x="180" y="-135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="0e40b339-b952-445b-a957-6d2d0a1bdbac" name="Matches?" type="Decision"><subsheetid>eacc4634-9985-4a1d-9773-8f79928708ee</subsheetid><loginhibit /><display x="105" y="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Worksheet Name] = [Worksheet Names.Name]" /><ontrue>f284f63f-fccf-4df8-ab7d-d7ef8aca1fb1</ontrue><onfalse>27d57e09-d2fa-496d-a5c6-d382be881ad1</onfalse></stage><stage stageid="f284f63f-fccf-4df8-ab7d-d7ef8aca1fb1" name="Found" type="Calculation"><subsheetid>eacc4634-9985-4a1d-9773-8f79928708ee</subsheetid><loginhibit /><display x="15" y="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>54725352-a686-4ebc-88d8-80fa81af39bc</onsuccess><calculation expression="True" stage="Worksheet Exists" /></stage><stage stageid="f5a7d39b-3edc-4984-89dc-f88f02b5f747" name="Worksheet Exists" type="Data"><subsheetid>eacc4634-9985-4a1d-9773-8f79928708ee</subsheetid><display x="-60" y="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="aea2b1ba-e24b-4929-a0be-bc2ad811f277" name="Not Found" type="Calculation"><subsheetid>eacc4634-9985-4a1d-9773-8f79928708ee</subsheetid><loginhibit /><display x="105" y="225" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>54725352-a686-4ebc-88d8-80fa81af39bc</onsuccess><calculation expression="False" stage="Worksheet Exists" /></stage><stage stageid="a1d81278-4fd7-4ee6-a878-8ec4dcde4793" name="Get Worksheet Range As Collection" type="SubSheetInfo"><subsheetid>f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e</subsheetid><narrative>Exceptions Office 2013 onwards There are known issues when attempting to read and write data using the Excel VBO with the application set to run in background mode. These issues can be overcome by using the Show action</narrative><display x="-135" y="-105" w="360" h="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="6f2ee451-c914-4c38-8e19-4d3e3a519dfd" name="End" type="End"><subsheetid>f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e</subsheetid><loginhibit /><display x="135" y="105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="collection" name="Data" narrative="The spreadsheet data from the specified range, as a collection" stage="worksheetcollection" /></outputs></stage><stage stageid="fa5759e6-b7e3-42d1-8297-90953ec4a343" name="handle" type="Data"><subsheetid>f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e</subsheetid><display x="-75" y="-15" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="832f8dbf-c88e-4488-89ec-d0782439fc34" name="workbookname" type="Data"><subsheetid>f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e</subsheetid><display x="-75" y="30" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="b7a36655-443b-482f-809b-eb738682ee98" name="Start" type="Start"><subsheetid>f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e</subsheetid><loginhibit /><display x="135" y="-120" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the number of rows is required. The default of zero indicates the currently active instance." stage="handle" /><input type="text" name="Workbook Name" narrative="The name of the workbook on which the number of rows is required. The default empty text value indicates the currently active workbook on the specified instance." stage="workbookname" /><input type="text" name="Worksheet Name" narrative="The name of the worksheet within the specified workbook which should be written to a collection. The default empty text indicates the currently active worksheet within the specified workbook." stage="worksheetname" /><input type="text" name="StartCell" narrative="The starting cell of the range of interest" stage="Start Cell" /><input type="text" name="EndCell" narrative="The end cell of the range of interest" stage="End Cell" /><input type="flag" name="Use Header" narrative="This flag states if the excel collection uses a header, or not." stage="Use Header" /></inputs><onsuccess>58d3ca4f-4467-492d-b85a-fd7ab4271110</onsuccess></stage><stage stageid="680eac96-2bd0-4d02-a62b-ac7bf684dae9" name="GetWorksheetRangeAsCollection" type="Code"><subsheetid>f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e</subsheetid><loginhibit /><display x="135" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /><input type="text" name="workbookname" expr="[workbookname]" /><input type="text" name="worksheetname" expr="[worksheetname]" /><input type="text" name="Start Cell" expr="[Start Cell]" /><input type="text" name="End Cell" expr="[End Cell]" /><input type="flag" name="Use Header" expr="[Use Header]" /></inputs><outputs><output type="collection" name="worksheetcollection" stage="worksheetcollection" /></outputs><onsuccess>6f2ee451-c914-4c38-8e19-4d3e3a519dfd</onsuccess><code><![CDATA[ Dim ws as Object = GetWorksheet( _ handle, workbookname, worksheetname) Dim r as Object r = ws.Range(Start_Cell & ":" & End_Cell) r.Select() r.Copy() Dim data As String = GetClipboardText() worksheetCollection = ParseDelimSeparatedVariables( _ data, vbTab, Nothing, Use_Header) ]]></code></stage><stage stageid="706da482-84a4-4e78-a1ba-002f80123e3f" name="worksheetname" type="Data"><subsheetid>f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e</subsheetid><display x="-75" y="75" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="b1ec36df-f335-48a9-a0f4-e3f39d6c987d" name="worksheetcollection" type="Collection"><subsheetid>f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e</subsheetid><display x="345" y="-15" w="150" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>collection</datatype><private /><alwaysinit /></stage><stage stageid="8054b9c8-5245-4a77-a058-949faeec00a7" name="Start Cell" type="Data"><subsheetid>f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e</subsheetid><display x="210" y="-120" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="d9f43b65-bd92-44fa-b0fe-cf798aaf49be" name="End Cell" type="Data"><subsheetid>f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e</subsheetid><display x="270" y="-120" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="40717bdb-980d-46a2-8ed8-4c3c283a98ff" name="Use Header" type="Data"><subsheetid>92799072-140a-4621-89cd-2da12475dcda</subsheetid><display x="30" y="-705" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>True</initialvalue><private /><alwaysinit /></stage><stage stageid="1a437a6b-8cfe-4bc1-a7d3-ca5a2e026477" name="Remove Blank Rows" type="SubSheetInfo"><subsheetid>67651307-0389-47bf-ae8d-fd94364e808f</subsheetid><narrative>Removes blank rows in the active excel workbook. The entire row must consist of blank cells.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="c883a67c-5093-45d2-82c8-680cf35c2c0e" name="Start" type="Start"><subsheetid>67651307-0389-47bf-ae8d-fd94364e808f</subsheetid><loginhibit /><display x="75" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the required workbook should be opened. The default of zero indicates the currently active instance." stage="handle" /></inputs><onsuccess>1e0e5735-5bc9-43dc-85c9-4e8735def67f</onsuccess></stage><stage stageid="7023c112-819d-4c9c-82f3-84ab84c9f560" name="End" type="End"><subsheetid>67651307-0389-47bf-ae8d-fd94364e808f</subsheetid><loginhibit /><display x="75" y="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="1e0e5735-5bc9-43dc-85c9-4e8735def67f" name="Activate Workbook" type="SubSheet"><subsheetid>67651307-0389-47bf-ae8d-fd94364e808f</subsheetid><loginhibit /><display x="75" y="-45" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the workbook should be activated. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Workbook Name" narrative="The workbook name identifying the workbook which should be activated - empty text indicates the currently active workbook, making this a no-op." expr="" /></inputs><onsuccess>4fa6c603-9d6a-4077-ba95-9d213394ee06</onsuccess><processid>6632ed99-8751-4c2a-ad00-3cc016300e08</processid></stage><stage stageid="890b79a0-986e-4982-a010-99e17a8f7173" name="handle" type="Data"><subsheetid>67651307-0389-47bf-ae8d-fd94364e808f</subsheetid><display x="225" y="-105" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="4fa6c603-9d6a-4077-ba95-9d213394ee06" name="Delete blank rows" type="Code"><subsheetid>67651307-0389-47bf-ae8d-fd94364e808f</subsheetid><loginhibit /><display x="75" y="15" w="180" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" expr="[handle]" /></inputs><onsuccess>7023c112-819d-4c9c-82f3-84ab84c9f560</onsuccess><code><![CDATA[Dim worksheet As Object worksheet = GetWorkbook(handle,Nothing).ActiveSheet Const xlCellTypeLastCell As Integer = 11 Dim FirstRow As Integer = 1 Dim LastRow As Integer = worksheet.Cells.SpecialCells(xlCellTypeLastCell).Row For i As Integer = LastRow To FirstRow Step -1 If worksheet.Application.CountA(worksheet.Rows(i)) = 0 Then worksheet.Rows(i).Delete End If Next]]></code></stage><stage stageid="7ea085b3-60ed-4690-9b58-044e3adac69b" name="Move Worksheet" type="SubSheetInfo"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><narrative>Moves the specified worksheet to another workbook. </narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="48fad533-06e9-41b7-b213-bfea2423c61c" name="Start" type="Start"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" narrative="The integer handle identifying the instance on which the workbook which should be closed resides. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Source Workbook" narrative="The name of the source workbook which contains the sheet required." stage="Source Workbook" /><input type="text" name="Source Worksheet" narrative="The name of the source worksheet which is to be moved." stage="Source Worksheet" /><input type="text" name="Destination Workbook" narrative="The name of the destination workbook which the worksheet will be moved to." stage="Destination Workbook" /><input type="number" name="Destination Position" narrative="The destination position to move the worksheet to." stage="Destination Position" /><input type="flag" name="Copy" narrative="The true or false flag to decide if the moved worksheet will be copied." stage="Copy" /></inputs><onsuccess>b950e637-fb25-4932-b970-65e4ee21dd1d</onsuccess></stage><stage stageid="51274535-b09a-4b0b-a9bc-fff82557aa0a" name="Handle" type="Data"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><display x="-195" y="-30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="6336e057-ac6a-4b57-b789-906100be58cc" name="Source Workbook" type="Data"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><display x="-195" y="30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="51bf5410-80ae-4517-8ee8-1ccf54a61e2f" name="Source Worksheet" type="Data"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><display x="-195" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="467b75ec-f03c-460e-a57d-d6852ab35293" name="Destination Workbook" type="Data"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><display x="-195" y="60" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="9ad740a0-b0e5-483c-9247-2b766533c852" name="Source Worksheet Exists" type="SubSheet"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><loginhibit /><display x="135" y="-30" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the number of rows is required. The default of zero indicates the currently active instance." expr="[Handle]" /><input type="text" name="Workbook Name" narrative="The name of the workbook on which the number of rows is required. The default empty text value indicates the currently active workbook on the specified instance." expr="[Source Workbook]" /><input type="text" name="Worksheet Name" narrative="The name of the worksheet of interest; it will be checked for existence" expr="[Source Worksheet]" /></inputs><outputs><output type="flag" name="Worksheet Exists" narrative="Indicates whether or not the named worksheet exists" stage="Worksheet Exists" /></outputs><onsuccess>efca1a70-2f20-4dda-b071-825a986958a6</onsuccess><processid>eacc4634-9985-4a1d-9773-8f79928708ee</processid></stage><stage stageid="4702c382-1a44-441c-9cd1-83281efd10ff" name="Worksheet Exists" type="Data"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><display x="-195" y="210" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="efca1a70-2f20-4dda-b071-825a986958a6" name="Worksheet Exists?" type="Decision"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><loginhibit /><display x="135" y="45" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Worksheet Exists]" /><ontrue>e804939a-8a40-4803-89cd-b10e57a97583</ontrue><onfalse>5d46a63f-e90b-4432-8c62-52d2e2380065</onfalse></stage><stage stageid="e804939a-8a40-4803-89cd-b10e57a97583" name="Move Named Worksheet" type="Code"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><loginhibit /><display x="135" y="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="SourceWorkbook" expr="[Source Workbook]" /><input type="text" name="SourceWorksheet" expr="[Source Worksheet]" /><input type="text" name="DestinationWorkbook" expr="[Destination Workbook]" /><input type="number" name="DestinationPosition" expr="[Destination Position]" /><input type="flag" name="Copy" expr="[Copy]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /></outputs><onsuccess>764ea205-800b-4ab5-adc1-273a46ad93b6</onsuccess><code><![CDATA[Dim dBook, sSheet As Object Dim p As Integer Try dBook = GetWorkbook(Handle, DestinationWorkbook) sSheet = GetWorksheet(Handle, SourceWorkbook, SourceWorksheet) p = Math.Max(1, DestinationPosition) p = Math.Min(dBook.Worksheets.Count, p) If DestinationPosition > p Then If Copy Then sSheet.Copy(After:=dBook.Worksheets(p)) Else sSheet.Move(After:=dBook.Worksheets(p)) End If Else If Copy Then sSheet.Copy(Before:=dBook.Worksheets(p)) Else sSheet.Move(Before:=dBook.Worksheets(p)) End If End If Success = True Catch e As Exception Success = False Message = e.Message Finally dBook = Nothing sSheet = Nothing End Try]]></code></stage><stage stageid="38d819d9-2dec-4ae8-afe3-76da44096935" name="End2" type="End"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><loginhibit /><display x="135" y="270" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="cb823085-c462-43b7-81d0-3ad7f1e026dd" name="Success" type="Data"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><display x="-195" y="240" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="81e05f5d-ac29-4885-b6cd-fd5a308fcc44" name="Message" type="Data"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><display x="-195" y="270" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="764ea205-800b-4ab5-adc1-273a46ad93b6" name="Success?" type="Decision"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><loginhibit /><display x="135" y="195" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Success]" /><ontrue>38d819d9-2dec-4ae8-afe3-76da44096935</ontrue><onfalse>65eda7a6-ce00-4372-9fc9-26931328aba4</onfalse></stage><stage stageid="7b25db9b-d103-4ba0-a8a5-468a16e50dd7" name="Exception" type="Exception"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><display x="345" y="195" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to copy worksheet: " & [Message]" /></stage><stage stageid="87c0d87a-ef13-4eb7-8e10-085ab67dc0a0" name="Destination Position" type="Data"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><display x="-195" y="90" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="3e46008f-172e-42b3-b4b3-e7221f0ef6d8" name="Copy and Paste Worksheet Range" type="SubSheetInfo"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><narrative>Office 2013 onwards There are known issues when attempting to read and write data using the Excel VBO with the application set to run in background mode. These issues can be overcome by using the Show action</narrative><display x="-270" y="-120" w="300" h="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="979c420e-1748-448e-9334-e238c47503a1" name="Copy" type="Data"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><display x="-195" y="120" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>False</initialvalue><private /><alwaysinit /></stage><stage stageid="5d46a63f-e90b-4432-8c62-52d2e2380065" name="Exception" type="Exception"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><display x="240" y="45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Source worksheet not found"" /></stage><stage stageid="b470a541-1a6d-4c08-936a-94d2c6c99aa8" name="Start" type="Start"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" narrative="The integer handle identifying the instance on which the workbook which should be closed resides. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Source Workbook" narrative="The name of the source workbook which is be copied." stage="Source Workbook" /><input type="text" name="Source Worksheet" narrative="The name of the source worksheet which is to be copied." stage="Source Worksheet" /><input type="text" name="Source Range" narrative="The range of cells which will be copied." stage="Source Range" /><input type="text" name="Destination Workbook" narrative="The name of the destination workbook which the worksheet will be copied to." stage="Destination Workbook" /><input type="text" name="Destination Worksheet" narrative="The name of the destination worksheet which the range of cell will be copied to." stage="Destination Worksheet" /><input type="text" name="Destination Range" narrative="The destination range of cells." stage="Destination Range" /></inputs><onsuccess>11afaed8-560c-4915-b3eb-04f45158a941</onsuccess></stage><stage stageid="b4598457-7e50-432e-ae29-7d081367e298" name="Source Workbook" type="Data"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><display x="-195" y="30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="dc6e0465-0f54-401c-964f-974f43802264" name="Source Worksheet" type="Data"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><display x="-195" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="18b0fe7d-0b86-4fd0-bcd9-6c80841ae464" name="Destination Workbook" type="Data"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><display x="-195" y="105" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="0366fbb1-1c68-4466-87cb-760d499b4cdd" name="Worksheet Exists" type="Data"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><display x="-195" y="210" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="11afaed8-560c-4915-b3eb-04f45158a941" name="Paste Worksheet" type="Code"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><loginhibit /><display x="15" y="-45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="Source Workbook" expr="[Source Workbook]" /><input type="text" name="Source Worksheet" expr="[Source Worksheet]" /><input type="text" name="Source Range" expr="[Source Range]" /><input type="text" name="Destination Workbook" expr="[Destination Workbook]" /><input type="text" name="Destination Worksheet" expr="[Destination Worksheet]" /><input type="text" name="Destination Range" expr="[Destination Range]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /></outputs><onsuccess>8136ae2b-8fb0-4945-8016-b5b9eae4c2d2</onsuccess><code><![CDATA[Dim sw, dw As Object Dim ss, ds As Object Dim excel, sheet, source, destination, cells, cell As Object Try sw = GetWorkbook(Handle, Source_Workbook) dw = GetWorkbook(Handle, Destination_Workbook) ss = GetWorksheet(Handle, Source_Workbook, Source_Worksheet) ds = GetWorksheet(Handle, Destination_Workbook, Destination_Worksheet) sw.Activate() ss.Activate() excel = ss.Application sheet = excel.ActiveSheet cell = excel.ActiveCell If Source_Range="" Then cells = sheet.Cells Destination_Range = "A1" Else cells = sheet.Range(Source_Range) End If cells.Select() source = excel.Selection source.Copy() cell.Select() dw.Activate() ds.Activate() sheet = excel.ActiveSheet cell = excel.ActiveCell destination = sheet.Range(Destination_Range) destination.Select() sheet.Paste() cell.Select() My.Computer.Clipboard.Clear() Success = True Catch e As Exception Success = False Message = e.Message Finally sw = Nothing ss = Nothing dw = Nothing ds = Nothing excel = Nothing sheet = Nothing source = Nothing destination = Nothing cells = Nothing cell = Nothing End Try]]></code></stage><stage stageid="70304b7a-b551-4a52-b52d-924f11d328a7" name="End2" type="End"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><loginhibit /><display x="15" y="105" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="61bc4bd1-c8ab-4fe3-993e-a7e30fcaf9ef" name="Success" type="Data"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><display x="-195" y="240" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="2e558b45-ad3b-459a-978c-048e7f555c4a" name="Message" type="Data"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><display x="-195" y="270" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="8136ae2b-8fb0-4945-8016-b5b9eae4c2d2" name="Success?" type="Decision"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><loginhibit /><display x="15" y="30" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Success]" /><ontrue>70304b7a-b551-4a52-b52d-924f11d328a7</ontrue><onfalse>470e1a49-496c-497e-b59a-537f730059cb</onfalse></stage><stage stageid="470e1a49-496c-497e-b59a-537f730059cb" name="Exception" type="Exception"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><display x="120" y="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to copy worksheet: " & [Message]" /></stage><stage stageid="2a17d158-14b5-4cec-aa84-2b6789585973" name="Destination Worksheet" type="Data"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><display x="-195" y="135" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="124d4f6c-b7b5-4935-8d7a-71a253571261" name="Handle" type="Data"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><display x="-195" y="-30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="b950e637-fb25-4932-b970-65e4ee21dd1d" name="Source Worksheet Number?" type="Decision"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><loginhibit /><display x="15" y="-30" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="IsNumber([Source Worksheet])" /><ontrue>eba296d1-0f89-4c61-892c-b25b40f3f618</ontrue><onfalse>9ad740a0-b0e5-483c-9247-2b766533c852</onfalse></stage><stage stageid="8b56215b-b4e5-4a95-a49d-179871dd1d2b" name="Move Numbered Worksheet" type="Code"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><loginhibit /><display x="15" y="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="SourceWorkbook" expr="[Source Workbook]" /><input type="number" name="SourceWorksheet" expr="[Source Worksheet Number]" /><input type="text" name="DestinationWorkbook" expr="[Destination Workbook]" /><input type="number" name="DestinationPosition" expr="[Destination Position]" /><input type="flag" name="Copy" expr="[Copy]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /></outputs><onsuccess>e9db38cf-4c64-49fa-a46b-f2dfa31dfe18</onsuccess><code><![CDATA[Dim sBook, dBook As Object Dim sSheet As Object Dim p As Integer Try sBook = GetWorkbook(Handle, SourceWorkbook) dBook = GetWorkbook(Handle, DestinationWorkbook) sSheet = sBook.Worksheets(SourceWorksheet) p = Math.Max(1, DestinationPosition) p = Math.Min(sBook.Worksheets.Count, p) If DestinationPosition > p Then If Copy Then sSheet.Copy(After:=dBook.Worksheets(p)) Else sSheet.Move(After:=dBook.Worksheets(p)) End If Else If Copy Then sSheet.Copy(Before:=dBook.Worksheets(p)) Else sSheet.Move(Before:=dBook.Worksheets(p)) End If End If Success = True Catch e As Exception Success = False Message = e.Message Finally sBook = Nothing dBook = Nothing sSheet = Nothing End Try]]></code></stage><stage stageid="e9db38cf-4c64-49fa-a46b-f2dfa31dfe18" name="anchor7" type="Anchor"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><loginhibit /><display x="15" y="195" w="10" h="10" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>764ea205-800b-4ab5-adc1-273a46ad93b6</onsuccess></stage><stage stageid="65eda7a6-ce00-4372-9fc9-26931328aba4" name="Copy?" type="Decision"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><loginhibit /><display x="240" y="195" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Copy]" /><ontrue>7b25db9b-d103-4ba0-a8a5-468a16e50dd7</ontrue><onfalse>32d3772b-fe03-4a13-a415-62b4fdd5fa8f</onfalse></stage><stage stageid="32d3772b-fe03-4a13-a415-62b4fdd5fa8f" name="Exception" type="Exception"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><display x="240" y="270" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to move worksheet: " & [Message]" /></stage><stage stageid="eba296d1-0f89-4c61-892c-b25b40f3f618" name="Source Workbook Number" type="Calculation"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><loginhibit /><display x="15" y="45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>8b56215b-b4e5-4a95-a49d-179871dd1d2b</onsuccess><calculation expression="[Source Worksheet]" stage="Source Worksheet Number" /></stage><stage stageid="2cc989f3-1c41-4289-98fb-383b0c88ed74" name="Source Worksheet Number" type="Data"><subsheetid>79b9bf7c-222d-4cc3-adc8-5bb337fa6d72</subsheetid><display x="-195" y="180" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="09bbef8a-09b2-4a43-925d-b1a0b88e692b" name="Get Worksheet Position" type="SubSheetInfo"><subsheetid>510b0ce5-bf46-43a1-86a4-72877f427e6f</subsheetid><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="4235fac3-2295-4511-828e-090e9c888d38" name="End" type="End"><subsheetid>510b0ce5-bf46-43a1-86a4-72877f427e6f</subsheetid><loginhibit /><display x="15" y="105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="number" name="Position" narrative="The output data - the position of the worksheet." stage="Position" /></outputs></stage><stage stageid="46d026ab-934f-4e60-8d1f-68344ac1b103" name="Handle" type="Data"><subsheetid>510b0ce5-bf46-43a1-86a4-72877f427e6f</subsheetid><display x="-195" y="-30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="d3d97151-6742-41e9-9b9a-08ce6b9700d1" name="Workbook" type="Data"><subsheetid>510b0ce5-bf46-43a1-86a4-72877f427e6f</subsheetid><display x="-195" y="30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="7ec78a25-f322-4161-8872-54815ffbc0f0" name="Worksheet" type="Data"><subsheetid>510b0ce5-bf46-43a1-86a4-72877f427e6f</subsheetid><display x="-195" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="9ccd25c1-379e-41cf-92fd-2d02ac1fc7ac" name="Start" type="Start"><subsheetid>510b0ce5-bf46-43a1-86a4-72877f427e6f</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" narrative="The integer handle identifying the instance on which the number of rows is required. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Workbook" narrative="The name of the workbook on which the number of rows is required. The default empty text value indicates the currently active workbook on the specified instance." stage="Workbook" /><input type="text" name="Worksheet" narrative="The name of the worksheet of interest; it will be checked for existence" stage="Worksheet" /></inputs><onsuccess>244c946c-e677-4da7-8d5a-de244ec07eea</onsuccess></stage><stage stageid="244c946c-e677-4da7-8d5a-de244ec07eea" name="Get Worksheet Position" type="Code"><subsheetid>510b0ce5-bf46-43a1-86a4-72877f427e6f</subsheetid><loginhibit /><display x="15" y="-45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="Workbook" expr="[Workbook]" /><input type="text" name="Worksheet" expr="[Worksheet]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /><output type="number" name="Position" stage="Position" /></outputs><onsuccess>27d60ef1-833c-44f5-b5ab-0aefb2c0581c</onsuccess><code><![CDATA[Dim wb, ws As Object Try wb = GetWorkbook(Handle, Workbook) ws = wb.Worksheets Position = ws(Worksheet).Index Success = True Catch e As Exception position = -1 Success = False Message = e.Message Finally wb = Nothing ws = Nothing End Try]]></code></stage><stage stageid="f13a2dde-4da4-4811-a0dd-f3f0bb009354" name="Position" type="Data"><subsheetid>510b0ce5-bf46-43a1-86a4-72877f427e6f</subsheetid><display x="-195" y="90" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="32b13d14-acc8-406c-8d15-9ffdc7355c5d" name="Source Range" type="Data"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><display x="-195" y="60" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="5fa73a8e-f525-4d57-a0ff-9df54a1d2d63" name="Destination Range" type="Data"><subsheetid>da83b3dd-0312-4b53-9732-e3f8e29c561f</subsheetid><display x="-195" y="165" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="0f1da6ce-caa1-4a5c-b622-70602b8ad49e" name="Select" type="SubSheetInfo"><subsheetid>9147cb85-5c6f-4a47-adcf-ab472d5a0b5a</subsheetid><narrative>Selects cells of a worksheet.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="30e9f460-bd3e-4273-bb7c-77fedbfe445f" name="End" type="End"><subsheetid>9147cb85-5c6f-4a47-adcf-ab472d5a0b5a</subsheetid><loginhibit /><display x="15" y="105" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="a24031db-2c21-4624-9a0b-6643f3e75247" name="Handle" type="Data"><subsheetid>9147cb85-5c6f-4a47-adcf-ab472d5a0b5a</subsheetid><display x="-195" y="-30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="aa9504d1-c2d1-49a6-a6f2-cf95da7eeb12" name="Workbook" type="Data"><subsheetid>9147cb85-5c6f-4a47-adcf-ab472d5a0b5a</subsheetid><display x="-195" y="30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="bcba2fd7-c2e3-4661-a6c4-be512624d70c" name="Worksheet" type="Data"><subsheetid>9147cb85-5c6f-4a47-adcf-ab472d5a0b5a</subsheetid><display x="-195" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="f78616ed-e974-46dd-ace5-c44a1b800c11" name="Start" type="Start"><subsheetid>9147cb85-5c6f-4a47-adcf-ab472d5a0b5a</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" narrative="The integer handle identifying the instance on which the cell to be formatted is contained. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Workbook" narrative="The name of the workbook." stage="Workbook" /><input type="text" name="Worksheet" narrative="The name of the worksheet." stage="Worksheet" /><input type="text" name="Cell Reference" narrative="The reference of cells that is selected." stage="Cell Reference" /></inputs><onsuccess>34677bae-38d3-4518-917f-c883f9c1677d</onsuccess></stage><stage stageid="92300230-c4b8-4530-9378-f98dfd556895" name="Cell Reference" type="Data"><subsheetid>9147cb85-5c6f-4a47-adcf-ab472d5a0b5a</subsheetid><display x="-195" y="60" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="34677bae-38d3-4518-917f-c883f9c1677d" name="Select Cells" type="Code"><subsheetid>9147cb85-5c6f-4a47-adcf-ab472d5a0b5a</subsheetid><loginhibit /><display x="15" y="-45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="Workbook" expr="[Workbook]" /><input type="text" name="Worksheet" expr="[Worksheet]" /><input type="text" name="Reference" expr="[Cell Reference]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /></outputs><onsuccess>2cb73eba-be13-4568-a11a-02f3a20b9dfe</onsuccess><code><![CDATA[Dim wb, ws As Object Dim excel, sheet, range As Object Try wb = GetWorkbook(Handle, Workbook) ws = GetWorksheet(Handle, Workbook, Worksheet) wb.Activate() ws.Activate() excel = ws.Application sheet = excel.ActiveSheet range = sheet.Range(Reference) range.Select() Success = True Catch e As Exception Success = False Message = e.Message Finally wb = Nothing ws = Nothing excel = Nothing sheet = Nothing range = Nothing End Try]]></code></stage><stage stageid="2cb73eba-be13-4568-a11a-02f3a20b9dfe" name="Success?" type="Decision"><subsheetid>9147cb85-5c6f-4a47-adcf-ab472d5a0b5a</subsheetid><loginhibit /><display x="15" y="30" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Success]" /><ontrue>30e9f460-bd3e-4273-bb7c-77fedbfe445f</ontrue><onfalse>7cb606b3-cd0e-46f3-bd05-fd635aa9d2d4</onfalse></stage><stage stageid="7cb606b3-cd0e-46f3-bd05-fd635aa9d2d4" name="Exception" type="Exception"><subsheetid>9147cb85-5c6f-4a47-adcf-ab472d5a0b5a</subsheetid><display x="120" y="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to select row: " & [Message]" /></stage><stage stageid="3e5f45b4-d1b1-4dc1-8be0-29a9b4a55c53" name="Success" type="Data"><subsheetid>9147cb85-5c6f-4a47-adcf-ab472d5a0b5a</subsheetid><display x="-195" y="105" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="34efe5b1-fcdd-4221-a651-006b1110ebbd" name="Message" type="Data"><subsheetid>9147cb85-5c6f-4a47-adcf-ab472d5a0b5a</subsheetid><display x="-195" y="135" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="8189dfa8-421a-45da-9d7c-26ac377bc514" name="Delete" type="SubSheetInfo"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><narrative>Delete cells from the workbook.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="a3f17004-6131-48f2-b0a8-e602f24b599e" name="End" type="End"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><loginhibit /><display x="120" y="195" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="6d0b1914-39fd-4e17-b7b4-55faafd45af7" name="Handle" type="Data"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><display x="-195" y="-30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="75588f1d-b4d2-4c8c-a51f-61c822a68abb" name="Workbook" type="Data"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><display x="-195" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="ad8ce293-a3a3-43ca-9b8f-1d680fbdc03e" name="Start" type="Start"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" narrative="The integer handle identifying the instance that contains the macro. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Workbook" narrative="The name of the workbook." stage="Workbook" /><input type="text" name="Shift (Left or Up)" narrative="The shift type for cells to be deleted." stage="Shift" /></inputs><onsuccess>97daebd3-2794-4944-af67-9698bbaa77b3</onsuccess></stage><stage stageid="57a5ebdd-ad03-4f7b-a358-8ef0172ed1fd" name="Delete Selection" type="Code"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><loginhibit /><display x="120" y="45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="Workbook" expr="[Workbook]" /><input type="number" name="Shift Type" expr="[Shift Type]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /></outputs><onsuccess>6f1da154-330d-490b-b615-df266c6767fa</onsuccess><code><![CDATA[Dim wb, excel, range As Object Try wb = GetWorkbook(Handle, Workbook) excel = wb.Application range = excel.Selection range.Delete(Shift:=[Shift_Type]) Success = True Catch e As Exception Success = False Message = e.Message Finally wb = Nothing excel = Nothing range = Nothing End Try]]></code></stage><stage stageid="6f1da154-330d-490b-b615-df266c6767fa" name="Success?" type="Decision"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><loginhibit /><display x="120" y="120" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Success]" /><ontrue>a3f17004-6131-48f2-b0a8-e602f24b599e</ontrue><onfalse>bb18bdc9-f544-4157-a6ba-e289c8f33c43</onfalse></stage><stage stageid="bb18bdc9-f544-4157-a6ba-e289c8f33c43" name="Exception" type="Exception"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><display x="225" y="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to delete selection: " & [Message]" /></stage><stage stageid="d0c4907b-2b85-424d-a6ef-8bcfb43d3f72" name="Success" type="Data"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><display x="-195" y="150" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="9dbebe22-4f86-499f-8f29-155baf2cc42d" name="Message" type="Data"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><display x="-195" y="180" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="2110b138-01f6-47af-befd-7a71637b5844" name="Shift" type="Data"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><display x="-195" y="30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="97daebd3-2794-4944-af67-9698bbaa77b3" name="Shift Left?" type="Decision"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><loginhibit /><display x="15" y="-30" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="Trim(Upper([Shift]))="LEFT"" /><ontrue>6e608312-7a91-4039-8f0a-90ccaac7d3cc</ontrue><onfalse>8a8e9a33-5eca-485a-adeb-e5a43592d6d4</onfalse></stage><stage stageid="6e608312-7a91-4039-8f0a-90ccaac7d3cc" name="Shift Type" type="Calculation"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><loginhibit /><display x="120" y="-30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>57a5ebdd-ad03-4f7b-a358-8ef0172ed1fd</onsuccess><calculation expression="-4159" stage="Shift Type" /></stage><stage stageid="4095b231-4d4f-4c98-b74d-6134fb63b9af" name="Shift Type" type="Data"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><display x="-195" y="120" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="8a8e9a33-5eca-485a-adeb-e5a43592d6d4" name="Shift Type" type="Calculation"><subsheetid>3d161cf5-0e7a-4ac7-aa8c-f37a1b380e1a</subsheetid><loginhibit /><display x="15" y="45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>57a5ebdd-ad03-4f7b-a358-8ef0172ed1fd</onsuccess><calculation expression="-4162" stage="Shift Type" /></stage><stage stageid="27122991-d4c6-4811-a366-7fd47a11da5c" name="Copy" type="SubSheetInfo"><subsheetid>71ebd060-a411-45fc-8f39-132eb3e5ff79</subsheetid><narrative>Copy cells from the workbook.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="bba0e0d4-6894-469c-a9b8-1f07855dadc9" name="End" type="End"><subsheetid>71ebd060-a411-45fc-8f39-132eb3e5ff79</subsheetid><loginhibit /><display x="15" y="105" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="364a6306-d747-4c70-84ae-4128d8938fbc" name="Handle" type="Data"><subsheetid>71ebd060-a411-45fc-8f39-132eb3e5ff79</subsheetid><display x="-195" y="-30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="f0139001-74d1-4ab8-a517-4329434df1e5" name="Workbook" type="Data"><subsheetid>71ebd060-a411-45fc-8f39-132eb3e5ff79</subsheetid><display x="-195" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="58d750a5-2e0e-4aaa-951a-76aaf6b973da" name="Start" type="Start"><subsheetid>71ebd060-a411-45fc-8f39-132eb3e5ff79</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" narrative="The integer handle identifying the instance that contains the macro. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Workbook" narrative="The name of the workbook." stage="Workbook" /></inputs><onsuccess>d8005fde-9fe5-47f9-a980-e4beae15815a</onsuccess></stage><stage stageid="a8acd5cc-0955-4896-b87a-80091b060926" name="Success?" type="Decision"><subsheetid>71ebd060-a411-45fc-8f39-132eb3e5ff79</subsheetid><loginhibit /><display x="15" y="30" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Success]" /><ontrue>bba0e0d4-6894-469c-a9b8-1f07855dadc9</ontrue><onfalse>6ceb186e-fea0-48a8-a72d-f104f83699c6</onfalse></stage><stage stageid="6ceb186e-fea0-48a8-a72d-f104f83699c6" name="Exception" type="Exception"><subsheetid>71ebd060-a411-45fc-8f39-132eb3e5ff79</subsheetid><display x="120" y="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to copy selection: " & [Message]" /></stage><stage stageid="4f25dc7f-bd6f-495d-90e7-0d561dba2662" name="Success" type="Data"><subsheetid>71ebd060-a411-45fc-8f39-132eb3e5ff79</subsheetid><display x="-195" y="105" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="8a8da6c3-ceed-4a32-8e4d-473b53a57602" name="Message" type="Data"><subsheetid>71ebd060-a411-45fc-8f39-132eb3e5ff79</subsheetid><display x="-195" y="135" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="d8005fde-9fe5-47f9-a980-e4beae15815a" name="Copy Selection" type="Code"><subsheetid>71ebd060-a411-45fc-8f39-132eb3e5ff79</subsheetid><loginhibit /><display x="15" y="-45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="Workbook" expr="[Workbook]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /></outputs><onsuccess>a8acd5cc-0955-4896-b87a-80091b060926</onsuccess><code><![CDATA[Dim wb, excel, range As Object Try wb = GetWorkbook(Handle, Workbook) excel = wb.Application range = excel.Selection range.Copy Success = True Catch e As Exception Success = False Message = e.Message Finally wb = Nothing excel = Nothing range = Nothing End Try]]></code></stage><stage stageid="044c591e-e63e-4f13-80b8-de4217a78b3b" name="Paste" type="SubSheetInfo"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><narrative>Paste text into cells of a workbook.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="1ebf6405-9e3a-45f8-be9c-fdd70f254b34" name="End" type="End"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><loginhibit /><display x="120" y="195" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="3f23548e-a9f9-48c6-93c3-fbd8fa4f8d8d" name="Handle" type="Data"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><display x="-195" y="-30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="0acf7ad6-162d-4e2d-9a03-a6ebc54eb526" name="Workbook" type="Data"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><display x="-195" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="7d4b5681-cffa-432d-be94-08d4ddf16986" name="Start" type="Start"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" narrative="The integer handle identifying the instance that contains the macro. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Workbook" narrative="The name of the workbook." stage="Workbook" /><input type="flag" name="Values Only" narrative="True or false flag to decide whether to paste the values only." stage="Values Only" /></inputs><onsuccess>0d27a545-71b3-4a27-843b-8ed69b1648ce</onsuccess></stage><stage stageid="360c1bdb-1960-4486-ad05-8ec4485ef0ec" name="Success?" type="Decision"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><loginhibit /><display x="120" y="120" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Success]" /><ontrue>1ebf6405-9e3a-45f8-be9c-fdd70f254b34</ontrue><onfalse>4830e942-edaf-4bd2-8922-9cffafc084ad</onfalse></stage><stage stageid="4830e942-edaf-4bd2-8922-9cffafc084ad" name="Exception" type="Exception"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><display x="225" y="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to paste from clipboard: " & [Message]" /></stage><stage stageid="77b051c2-e570-49a3-8708-b42785a2517f" name="Success" type="Data"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><display x="-195" y="165" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="da93fc46-495b-4511-a724-a1cc7d70cffa" name="Message" type="Data"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><display x="-195" y="195" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="24bf06a1-fd8f-4cd3-bab6-e05552f8bdba" name="Paste Values" type="Code"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><loginhibit /><display x="120" y="45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="Workbook" expr="[Workbook]" /><input type="number" name="Paste Option" expr="[Paste Option]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /></outputs><onsuccess>360c1bdb-1960-4486-ad05-8ec4485ef0ec</onsuccess><code><![CDATA[Dim wb, excel, range As Object Try wb = GetWorkbook(Handle, Workbook) excel = wb.Application range = excel.Selection range.PasteSpecial(Paste:=Paste_Option, Operation:=-4142, SkipBlanks:=False, Transpose:=False) Success = True Catch e As Exception Success = False Message = e.Message Finally wb = Nothing range = Nothing End Try]]></code></stage><stage stageid="ba04d5a5-b0f7-4979-af44-2f0fee5237f9" name="Write To Clipboard" type="SubSheetInfo"><subsheetid>2c59601b-2b70-4c97-a218-0abf1bf7463a</subsheetid><narrative>Writes text to clipboard so that it can be copied.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="1587c068-8225-4476-b636-9403f8acd84a" name="Start" type="Start"><subsheetid>2c59601b-2b70-4c97-a218-0abf1bf7463a</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="Value" narrative="The text that is to be copied to clipboard." stage="Value" /></inputs><onsuccess>2279ba0c-3963-48f8-b813-4b0f53f47471</onsuccess></stage><stage stageid="a82e0657-86e9-4273-bd0f-2065d5f70254" name="End" type="End"><subsheetid>2c59601b-2b70-4c97-a218-0abf1bf7463a</subsheetid><loginhibit /><display x="15" y="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="eda7181f-a720-4b63-9d69-86221881d965" name="Value" type="Data"><subsheetid>2c59601b-2b70-4c97-a218-0abf1bf7463a</subsheetid><display x="-195" y="-30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="2279ba0c-3963-48f8-b813-4b0f53f47471" name="Write To Clipboard" type="Code"><subsheetid>2c59601b-2b70-4c97-a218-0abf1bf7463a</subsheetid><loginhibit /><display x="15" y="-15" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="Value" expr="[Value]" /></inputs><onsuccess>a82e0657-86e9-4273-bd0f-2065d5f70254</onsuccess><code><![CDATA[ SetClipboardText(Value) ]]></code></stage><stage stageid="79b62074-ec0d-49c6-a258-61823cc8a849" name="Values Only" type="Data"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><display x="-195" y="30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>False</initialvalue><private /><alwaysinit /></stage><stage stageid="0d27a545-71b3-4a27-843b-8ed69b1648ce" name="Values Only?" type="Decision"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><loginhibit /><display x="15" y="-30" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Values Only]" /><ontrue>5bd5a242-a414-4d49-b093-0eb8d3978f8a</ontrue><onfalse>f98e8dcf-bff1-418a-9963-4878022c7391</onfalse></stage><stage stageid="f98e8dcf-bff1-418a-9963-4878022c7391" name="Paste Option" type="Calculation"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><loginhibit /><display x="120" y="-30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>24bf06a1-fd8f-4cd3-bab6-e05552f8bdba</onsuccess><calculation expression="-4104" stage="Paste Option" /></stage><stage stageid="8e80a8c9-867f-46fa-ace9-d251af38eeed" name="Paste Option" type="Data"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><display x="-195" y="135" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="5bd5a242-a414-4d49-b093-0eb8d3978f8a" name="Paste Option" type="Calculation"><subsheetid>035d5ed0-2f39-46ca-80c1-b0127418dc9e</subsheetid><loginhibit /><display x="15" y="45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>24bf06a1-fd8f-4cd3-bab6-e05552f8bdba</onsuccess><calculation expression="-4163" stage="Paste Option" /></stage><stage stageid="7f2dfa02-938c-4179-9e22-216057d33f43" name="Cut" type="SubSheetInfo"><subsheetid>5eee765d-c84b-493f-9132-f6a27f296d0e</subsheetid><narrative>Cut cells from the workbook.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="f2f20301-ebd9-4fbd-9b94-ca2074e69294" name="End" type="End"><subsheetid>5eee765d-c84b-493f-9132-f6a27f296d0e</subsheetid><loginhibit /><display x="15" y="105" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="d29233ea-0e94-44a4-864c-f32568e42c4b" name="Handle" type="Data"><subsheetid>5eee765d-c84b-493f-9132-f6a27f296d0e</subsheetid><display x="-195" y="-30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="59232dab-20a4-4e84-8a43-e2016ef6a74c" name="Workbook" type="Data"><subsheetid>5eee765d-c84b-493f-9132-f6a27f296d0e</subsheetid><display x="-195" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="6d6c212b-fd48-44cf-a931-8c99060d29cc" name="Start" type="Start"><subsheetid>5eee765d-c84b-493f-9132-f6a27f296d0e</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" narrative="The integer handle identifying the instance that contains the macro. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Workbook" narrative="The name of the workbook." stage="Workbook" /></inputs><onsuccess>3dcf0167-85d1-4170-b214-86784cbcab65</onsuccess></stage><stage stageid="581ece97-ebdc-4855-8fdf-45290b4e587d" name="Success?" type="Decision"><subsheetid>5eee765d-c84b-493f-9132-f6a27f296d0e</subsheetid><loginhibit /><display x="15" y="30" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Success]" /><ontrue>f2f20301-ebd9-4fbd-9b94-ca2074e69294</ontrue><onfalse>797b7b44-cd61-4d3c-8874-82e44868ea1b</onfalse></stage><stage stageid="797b7b44-cd61-4d3c-8874-82e44868ea1b" name="Exception" type="Exception"><subsheetid>5eee765d-c84b-493f-9132-f6a27f296d0e</subsheetid><display x="120" y="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to cut selection: " & [Message]" /></stage><stage stageid="3556655c-d270-4054-a989-b2f44854a7ba" name="Success" type="Data"><subsheetid>5eee765d-c84b-493f-9132-f6a27f296d0e</subsheetid><display x="-195" y="105" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="9e9b9ba3-e800-4df7-bc87-db6b36f846c9" name="Message" type="Data"><subsheetid>5eee765d-c84b-493f-9132-f6a27f296d0e</subsheetid><display x="-195" y="135" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="3dcf0167-85d1-4170-b214-86784cbcab65" name="Cut Selection" type="Code"><subsheetid>5eee765d-c84b-493f-9132-f6a27f296d0e</subsheetid><loginhibit /><display x="15" y="-45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="Workbook" expr="[Workbook]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /></outputs><onsuccess>581ece97-ebdc-4855-8fdf-45290b4e587d</onsuccess><code><![CDATA[Dim wb, excel, range As Object Try wb = GetWorkbook(Handle, Workbook) excel = wb.Application range = excel.Selection range.Cut Success = True Catch e As Exception Success = False Message = e.Message Finally wb = Nothing excel = Nothing range = Nothing End Try]]></code></stage><stage stageid="fc13a15a-74aa-47dc-af68-38bea19af981" name="Protect Workbook" type="SubSheetInfo"><subsheetid>c37e9923-b729-471b-80b1-7d44113ca618</subsheetid><narrative>Protects the workbook so that it is encrypted with a password.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="0e32102b-7c0a-4f3e-9fe7-cc267fede407" name="Handle" type="Data"><subsheetid>c37e9923-b729-471b-80b1-7d44113ca618</subsheetid><display x="-195" y="-30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="03b0377d-35e5-4a7d-b16c-756d690843ee" name="Workbook" type="Data"><subsheetid>c37e9923-b729-471b-80b1-7d44113ca618</subsheetid><display x="-195" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="b1610a1c-3532-4a88-8732-39cbfb4495f4" name="Start" type="Start"><subsheetid>c37e9923-b729-471b-80b1-7d44113ca618</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" narrative="The integer handle identifying the instance that contains the macro. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Workbook" narrative="The name of the workbook." stage="Workbook" /><input type="password" name="Password" narrative="The password of the workbook." stage="Password" /></inputs><onsuccess>e47e5f86-b7d0-409e-bf2a-6673cf28bac7</onsuccess></stage><stage stageid="de93c65e-11ae-4507-b8bf-da3f09910f82" name="Password" type="Data"><subsheetid>c37e9923-b729-471b-80b1-7d44113ca618</subsheetid><display x="-195" y="30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>password</datatype><initialvalueenc></initialvalueenc><private /><alwaysinit /></stage><stage stageid="e47e5f86-b7d0-409e-bf2a-6673cf28bac7" name="Protect Workbook" type="Code"><subsheetid>c37e9923-b729-471b-80b1-7d44113ca618</subsheetid><loginhibit /><display x="15" y="-45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="Workbook" expr="[Workbook]" /><input type="password" name="Password" expr="[Password]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /></outputs><onsuccess>09dd5e11-1dd3-4f18-bbe0-ed52d1f79fb0</onsuccess><code><![CDATA[Dim wb As Object Try wb = GetWorkbook(Handle, Workbook) wb.Protect(Password, True, True) Success = True Catch e As Exception Success = False Message = e.Message Finally wb = Nothing End Try]]></code></stage><stage stageid="6a177cf9-5ec0-481d-84e9-c5d72177038d" name="Hide Worksheet" type="SubSheetInfo"><subsheetid>7316eded-6aed-4d1d-9eeb-64fbbb8e53a0</subsheetid><narrative>Hides worksheet so that is not visible.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="0cc70266-582a-410c-9c3a-29ff9dfb795e" name="Handle" type="Data"><subsheetid>7316eded-6aed-4d1d-9eeb-64fbbb8e53a0</subsheetid><display x="-195" y="-30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="4cf25a3a-b4dd-4b80-8339-06b9d63e56e6" name="Workbook" type="Data"><subsheetid>7316eded-6aed-4d1d-9eeb-64fbbb8e53a0</subsheetid><display x="-195" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="e8889824-2e30-472c-bb9a-4daad82560f3" name="Worksheet" type="Data"><subsheetid>7316eded-6aed-4d1d-9eeb-64fbbb8e53a0</subsheetid><display x="-195" y="30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="2d9d6921-9f68-4152-be57-8b0df6472eda" name="Start" type="Start"><subsheetid>7316eded-6aed-4d1d-9eeb-64fbbb8e53a0</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" narrative="The integer handle identifying the instance that contains the macro. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Workbook" narrative="The name of the workbook." stage="Workbook" /><input type="text" name="Worksheet" narrative="The name of the worksheet." stage="Worksheet" /></inputs><onsuccess>298fe33e-bd86-4109-8540-f1abe8d02eb8</onsuccess></stage><stage stageid="4a51d886-d307-4904-8ce4-98191c734a17" name="End" type="End"><subsheetid>c37e9923-b729-471b-80b1-7d44113ca618</subsheetid><loginhibit /><display x="15" y="105" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="09dd5e11-1dd3-4f18-bbe0-ed52d1f79fb0" name="Success?" type="Decision"><subsheetid>c37e9923-b729-471b-80b1-7d44113ca618</subsheetid><loginhibit /><display x="15" y="30" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Success]" /><ontrue>4a51d886-d307-4904-8ce4-98191c734a17</ontrue><onfalse>fbeb4a74-fc5f-431f-b150-15549afc2a22</onfalse></stage><stage stageid="fbeb4a74-fc5f-431f-b150-15549afc2a22" name="Exception" type="Exception"><subsheetid>c37e9923-b729-471b-80b1-7d44113ca618</subsheetid><display x="120" y="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to protect workbook: " & [Message]" /></stage><stage stageid="298fe33e-bd86-4109-8540-f1abe8d02eb8" name="Hide Worksheet" type="Code"><subsheetid>7316eded-6aed-4d1d-9eeb-64fbbb8e53a0</subsheetid><loginhibit /><display x="15" y="-45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="Workbook" expr="[Workbook]" /><input type="text" name="Worksheet" expr="[Worksheet]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /></outputs><onsuccess>66ad2075-9b87-44be-9c6d-0a702d752f57</onsuccess><code><![CDATA[Dim ws As Object Try ws = GetWorkSheet(Handle, Workbook, Worksheet) ws.Visible = False Success = True Catch e As Exception Success = False Message = e.Message Finally ws = Nothing End Try]]></code></stage><stage stageid="c2e5c7e9-93a1-489e-a870-523042f050f1" name="End" type="End"><subsheetid>7316eded-6aed-4d1d-9eeb-64fbbb8e53a0</subsheetid><loginhibit /><display x="15" y="105" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="66ad2075-9b87-44be-9c6d-0a702d752f57" name="Success?" type="Decision"><subsheetid>7316eded-6aed-4d1d-9eeb-64fbbb8e53a0</subsheetid><loginhibit /><display x="15" y="30" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Success]" /><ontrue>c2e5c7e9-93a1-489e-a870-523042f050f1</ontrue><onfalse>7dca362f-2e45-443b-adc7-9075f02fc717</onfalse></stage><stage stageid="7dca362f-2e45-443b-adc7-9075f02fc717" name="Exception" type="Exception"><subsheetid>7316eded-6aed-4d1d-9eeb-64fbbb8e53a0</subsheetid><display x="120" y="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to protehide worksheet: " & [Message]" /></stage><stage stageid="c3b30035-3883-4740-9cf0-49e967ad6306" name="Success" type="Data"><subsheetid>c37e9923-b729-471b-80b1-7d44113ca618</subsheetid><display x="-195" y="75" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="ff6900f6-3524-4b24-be71-4d12c2d4c77e" name="Message" type="Data"><subsheetid>c37e9923-b729-471b-80b1-7d44113ca618</subsheetid><display x="-195" y="105" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="cea8af9d-95ea-4c09-9932-adc8cc633db6" name="Success" type="Data"><subsheetid>7316eded-6aed-4d1d-9eeb-64fbbb8e53a0</subsheetid><display x="-195" y="75" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="b7888130-7082-4f05-8864-3f0709675831" name="Message" type="Data"><subsheetid>7316eded-6aed-4d1d-9eeb-64fbbb8e53a0</subsheetid><display x="-195" y="105" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="9b9509a6-dfc6-4f25-9474-dba6e8b7ed20" name="Hide Other Worksheets" type="SubSheetInfo"><subsheetid>e62b9c20-62f8-4d28-8f19-de7610e56e1e</subsheetid><narrative>Hide all other worksheets so that they are not visible.</narrative><display x="-480" y="-1020" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="a81bb6df-46b8-4641-8531-802be8934741" name="Handle" type="Data"><subsheetid>e62b9c20-62f8-4d28-8f19-de7610e56e1e</subsheetid><display x="-480" y="-945" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="f349c5cb-454b-448c-b225-5c474ae4e52d" name="Workbook" type="Data"><subsheetid>e62b9c20-62f8-4d28-8f19-de7610e56e1e</subsheetid><display x="-480" y="-915" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="999117c1-6fa6-4172-9512-78106c277a38" name="Worksheet" type="Data"><subsheetid>e62b9c20-62f8-4d28-8f19-de7610e56e1e</subsheetid><display x="-480" y="-885" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="6444d8d9-7f26-4eb5-ab31-c98706e6209a" name="Start" type="Start"><subsheetid>e62b9c20-62f8-4d28-8f19-de7610e56e1e</subsheetid><loginhibit /><display x="-270" y="-1020" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" narrative="The integer handle identifying the instance that contains the macro. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Workbook" narrative="The name of the workbook." stage="Workbook" /><input type="text" name="Worksheet" narrative="The name of the worksheet." stage="Worksheet" /></inputs><onsuccess>c5ca2626-02e2-4413-9476-9958c1b7b717</onsuccess></stage><stage stageid="c5ca2626-02e2-4413-9476-9958c1b7b717" name="Hide Other Worksheets" type="Code"><subsheetid>e62b9c20-62f8-4d28-8f19-de7610e56e1e</subsheetid><loginhibit /><display x="-270" y="-960" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="Workbook" expr="[Workbook]" /><input type="text" name="Worksheet" expr="[Worksheet]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /></outputs><onsuccess>36529e74-e353-4cbd-b6ff-3591c0390efd</onsuccess><code><![CDATA[Dim wb As Object Try wb = GetWorkbook(Handle, Workbook) For Each ws As Object In wb.Worksheets ws.Visible = (ws.Name = Worksheet) Next Success = True Catch e As Exception Success = False Message = e.Message Finally wb = Nothing End Try]]></code></stage><stage stageid="52e20387-128e-4f5c-b182-7d28a9005a71" name="End" type="End"><subsheetid>e62b9c20-62f8-4d28-8f19-de7610e56e1e</subsheetid><loginhibit /><display x="-270" y="-810" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="36529e74-e353-4cbd-b6ff-3591c0390efd" name="Success?" type="Decision"><subsheetid>e62b9c20-62f8-4d28-8f19-de7610e56e1e</subsheetid><loginhibit /><display x="-270" y="-885" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Success]" /><ontrue>52e20387-128e-4f5c-b182-7d28a9005a71</ontrue><onfalse>c5840684-3348-4ee6-a024-dda79500a851</onfalse></stage><stage stageid="c5840684-3348-4ee6-a024-dda79500a851" name="Exception" type="Exception"><subsheetid>e62b9c20-62f8-4d28-8f19-de7610e56e1e</subsheetid><display x="-165" y="-885" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to hide worksheets: " & [Message]" /></stage><stage stageid="089eef49-c020-4aea-929e-4d1ae4282215" name="Success" type="Data"><subsheetid>e62b9c20-62f8-4d28-8f19-de7610e56e1e</subsheetid><display x="-480" y="-840" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="370e2ccf-3010-44ea-9155-06babd5e856c" name="Message" type="Data"><subsheetid>e62b9c20-62f8-4d28-8f19-de7610e56e1e</subsheetid><display x="-480" y="-810" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="4996af5e-0cc1-4e24-aedf-20320350469e" name="Import CSV" type="SubSheetInfo"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><narrative>Import CSV worksheets into a workbook using a path.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="b4b14657-a0f4-4c85-9466-5146878dfbe7" name="Handle" type="Data"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><display x="-195" y="-30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="bbfe7495-0fef-4c22-a251-88166b8485d4" name="Workbook" type="Data"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><display x="-195" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="3c0e661b-9b74-4d25-9a8b-1da52f957ed2" name="Worksheet" type="Data"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><display x="-195" y="30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="8df3e95e-4a03-4e0a-a649-37fb1d17ff41" name="Start" type="Start"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Destination Handle" narrative="The integer handle identifying the instance that contains the macro. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Destination Workbook" narrative="The name of the workbook that the CSV is imported to." stage="Workbook" /><input type="text" name="Destination Worksheet" narrative="The name of the worksheet that the CSV is imported to." stage="Worksheet" /><input type="text" name="Destination Range" narrative="The destination range of where the CSV will be imported into the worksheet," stage="Range" /><input type="text" name="Source File Path" narrative="The file path of the CSV file to be imported." stage="Path" /><input type="text" name="Source Text Qualifier" narrative="The source text of the CSV to be imported." stage="Qualifier" /></inputs><onsuccess>a09cfa98-b04d-472f-ad84-87e6a0bdb011</onsuccess></stage><stage stageid="7803cce6-3095-4d46-9cd2-793181eb080d" name="Import CSV" type="Code"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><loginhibit /><display x="120" y="135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="Workbook" expr="[Workbook]" /><input type="text" name="Worksheet" expr="[Worksheet]" /><input type="text" name="Range" expr="[Range]" /><input type="text" name="Path" expr="[Path]" /><input type="number" name="Qualifier" expr="[Qualifier Code]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /></outputs><onsuccess>91f84fae-ca36-4b8b-8221-bc3e95cd2ef3</onsuccess><code><![CDATA[Dim dw, ds, dr, qt As Object Try dw = GetWorkbook(Handle, Workbook) ds = GetWorksheet(Handle, Workbook, Worksheet) dr = ds.Range(Range) qt = ds.QueryTables.Add(Connection:="TEXT;" & Path, Destination:=dr) With qt .FieldNames = True .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .RefreshStyle = 1 'xlInsertDeleteCells .SavePassword = False .SaveData = True .AdjustColumnWidth = True .RefreshPeriod = 0 .TextFilePromptOnRefresh = False .TextFilePlatform = 437 .TextFileStartRow = 1 .TextFileParseType = 1 'xlDelimited .TextFileTextQualifier = Qualifier .TextFileConsecutiveDelimiter = False .TextFileTabDelimiter = False .TextFileSemicolonDelimiter = False .TextFileCommaDelimiter = True .TextFileSpaceDelimiter = False .TextFileTrailingMinusNumbers = True End With qt.Refresh(False) Success = True Catch e As Exception Success = False Message = e.Message Finally dw = Nothing ds = Nothing dr = Nothing qt = Nothing End Try]]></code></stage><stage stageid="bfe990bf-be29-4c21-ac04-96a798ab1827" name="End" type="End"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><loginhibit /><display x="120" y="285" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="91f84fae-ca36-4b8b-8221-bc3e95cd2ef3" name="Success?" type="Decision"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><loginhibit /><display x="120" y="210" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Success]" /><ontrue>bfe990bf-be29-4c21-ac04-96a798ab1827</ontrue><onfalse>6aaf6a41-be76-442d-9c2b-06905c4e0355</onfalse></stage><stage stageid="6aaf6a41-be76-442d-9c2b-06905c4e0355" name="Exception" type="Exception"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><display x="225" y="210" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to import CSV: " & [Message]" /></stage><stage stageid="af967b8b-4ec8-4202-ac07-6acbf9d12d46" name="Success" type="Data"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><display x="-195" y="210" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="5335f808-6164-4249-9a2c-682294b9834c" name="Message" type="Data"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><display x="-195" y="240" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="955e0188-d711-476b-b15b-1362ba3b0ea4" name="Path" type="Data"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><display x="-195" y="90" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="cef84711-b0a0-4f04-a09d-a6e9637ea2cb" name="Qualifier" type="Data"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><display x="-195" y="120" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="a09cfa98-b04d-472f-ad84-87e6a0bdb011" name="Double Quote Qualifier?" type="Decision"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><loginhibit /><display x="15" y="-30" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Qualifier]=""""" /><ontrue>b0e18e5b-791a-492a-b6c6-112ed2cdf10f</ontrue><onfalse>6e036392-ff83-4dfa-94fe-ff1ed03cd9bc</onfalse></stage><stage stageid="b0e18e5b-791a-492a-b6c6-112ed2cdf10f" name="Qualifier Code" type="Calculation"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><loginhibit /><display x="120" y="-30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>7803cce6-3095-4d46-9cd2-793181eb080d</onsuccess><calculation expression="1" stage="Qualifier Code" /></stage><stage stageid="f9eb7145-ee8c-41cc-8ea2-2417adbcd435" name="Qualifier Code" type="Data"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><display x="-195" y="180" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="fc2b8ffb-c597-4ede-8134-1cc80a2c3293" name="Qualifier Code" type="Calculation"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><loginhibit /><display x="15" y="135" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>7803cce6-3095-4d46-9cd2-793181eb080d</onsuccess><calculation expression="-4142" stage="Qualifier Code" /></stage><stage stageid="6e036392-ff83-4dfa-94fe-ff1ed03cd9bc" name="Note2" type="Note"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><loginhibit /><narrative>Assume no text qualifier</narrative><display x="15" y="60" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>fc2b8ffb-c597-4ede-8134-1cc80a2c3293</onsuccess></stage><stage stageid="70744683-2ca9-4e9a-89b9-194945f98e32" name="Range" type="Data"><subsheetid>1487aa65-ac8a-44e9-a6e9-8b16b4be5199</subsheetid><display x="-195" y="60" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="5c8e00b5-ec48-479b-8abf-6a6658752cb5" name="Get Worksheet Name" type="SubSheetInfo"><subsheetid>b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67</subsheetid><narrative>Gets the name of the worksheet.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="2af2843d-00f3-464f-ab67-305ae6ccf858" name="End" type="End"><subsheetid>b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67</subsheetid><loginhibit /><display x="15" y="105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="Worksheet" narrative="The output data - the name of the worksheet." stage="Worksheet" /></outputs></stage><stage stageid="26c465a5-f001-4ff8-ac21-28437489e85f" name="Handle" type="Data"><subsheetid>b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67</subsheetid><display x="-195" y="-30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="2de7e6b6-6118-4b3f-ba2b-179ba64d95d8" name="Workbook" type="Data"><subsheetid>b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67</subsheetid><display x="-195" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="5ee8f628-7829-42f7-ac8c-672d78be654f" name="Worksheet" type="Data"><subsheetid>b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67</subsheetid><display x="-195" y="90" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="c752debc-3eea-4935-a460-f8eb77039d5d" name="Start" type="Start"><subsheetid>b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" narrative="The integer handle identifying the instance on which the number of rows is required. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Workbook" narrative="The name of the workbook." stage="Workbook" /><input type="number" name="Worksheet Position" narrative="The position of the worksheet." stage="Position" /></inputs><onsuccess>ba712112-b784-4f87-a7ff-5a8721aca35d</onsuccess></stage><stage stageid="ba712112-b784-4f87-a7ff-5a8721aca35d" name="Get Worksheet" type="Code"><subsheetid>b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67</subsheetid><loginhibit /><display x="15" y="-45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="Workbook" expr="[Workbook]" /><input type="number" name="Position" expr="[Position]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /><output type="text" name="Worksheet" stage="Worksheet" /></outputs><onsuccess>39f8ebfd-a1e8-4517-add5-653f475fe8eb</onsuccess><code><![CDATA[Dim wb, ws As Object Try wb = GetWorkbook(Handle, Workbook) ws = wb.Worksheets(Position) Worksheet = ws.Name Success = True Catch e As Exception position = -1 Success = False Message = e.Message Finally wb = Nothing ws = Nothing End Try]]></code></stage><stage stageid="2cbe9309-244f-45ae-8716-0d02bf738530" name="Position" type="Data"><subsheetid>b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67</subsheetid><display x="-195" y="30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="27d60ef1-833c-44f5-b5ab-0aefb2c0581c" name="Success?" type="Decision"><subsheetid>510b0ce5-bf46-43a1-86a4-72877f427e6f</subsheetid><loginhibit /><display x="15" y="30" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Success]" /><ontrue>4235fac3-2295-4511-828e-090e9c888d38</ontrue><onfalse>8edc5ff8-0139-409d-ba63-7f23bf726964</onfalse></stage><stage stageid="8edc5ff8-0139-409d-ba63-7f23bf726964" name="Exception" type="Exception"><subsheetid>510b0ce5-bf46-43a1-86a4-72877f427e6f</subsheetid><display x="120" y="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to get worksheet position: " & [Message]" /></stage><stage stageid="39f8ebfd-a1e8-4517-add5-653f475fe8eb" name="Success?" type="Decision"><subsheetid>b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67</subsheetid><loginhibit /><display x="15" y="30" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Success]" /><ontrue>2af2843d-00f3-464f-ab67-305ae6ccf858</ontrue><onfalse>636399b4-ec2b-41a7-ac41-27e98637df4c</onfalse></stage><stage stageid="636399b4-ec2b-41a7-ac41-27e98637df4c" name="Exception" type="Exception"><subsheetid>b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67</subsheetid><display x="120" y="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to get worksheet name: " & [Message]" /></stage><stage stageid="69b153d1-9bd9-4c51-8b96-d45c1112bbfb" name="Success" type="Data"><subsheetid>b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67</subsheetid><display x="-195" y="120" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="464ca930-cf54-4147-8041-1007cc2416b6" name="Message" type="Data"><subsheetid>b39f7ce9-ba76-4a8c-a404-bccf4c9ffe67</subsheetid><display x="-195" y="150" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="def46f81-3f9f-421d-91cf-f12583e956d3" name="Success" type="Data"><subsheetid>510b0ce5-bf46-43a1-86a4-72877f427e6f</subsheetid><display x="-195" y="120" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="1195aa37-1cbe-4f02-9d00-c39f3e304cfc" name="Message" type="Data"><subsheetid>510b0ce5-bf46-43a1-86a4-72877f427e6f</subsheetid><display x="-195" y="150" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="5222003b-5cb9-4669-bc35-96d41b028249" name="Insert" type="SubSheetInfo"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><narrative>Insert cells into the workbook.</narrative><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="7c868cff-a594-49f6-bde7-fc3ba2cd17c6" name="End" type="End"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><loginhibit /><display x="120" y="195" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="6c34b4fa-4824-48bf-ae2a-b709a25cec17" name="Handle" type="Data"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><display x="-195" y="-30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="3dc53e03-3a4f-4ca9-ba70-17573564d976" name="Workbook" type="Data"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><display x="-195" y="0" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="89909450-cca0-4546-bbbc-32cbd4c609bc" name="Start" type="Start"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" narrative="The integer handle identifying the instance that contains the macro. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Workbook" narrative="The name of the workbook." stage="Workbook" /><input type="text" name="Shift (Left or Up)" narrative="The shift type to be used to insert cells." stage="Shift" /></inputs><onsuccess>1f31ede9-3b32-4aaf-9b55-573cb227a850</onsuccess></stage><stage stageid="dc1f9d40-b099-44c3-a2c1-e782413b0914" name="Insert" type="Code"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><loginhibit /><display x="120" y="45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="Workbook" expr="[Workbook]" /><input type="number" name="Shift Type" expr="[Shift Type]" /></inputs><outputs><output type="flag" name="Success" stage="Success" /><output type="text" name="Message" stage="Message" /></outputs><onsuccess>be039ecb-6427-4a80-8a91-9b69561fc2de</onsuccess><code><![CDATA[Dim wb, excel, range As Object Try wb = GetWorkbook(Handle, Workbook) excel = wb.Application range = excel.Selection range.Insert(Shift:=[Shift_Type]) Success = True Catch e As Exception Success = False Message = e.Message Finally wb = Nothing excel = Nothing range = Nothing End Try]]></code></stage><stage stageid="be039ecb-6427-4a80-8a91-9b69561fc2de" name="Success?" type="Decision"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><loginhibit /><display x="120" y="120" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="[Success]" /><ontrue>7c868cff-a594-49f6-bde7-fc3ba2cd17c6</ontrue><onfalse>741cc1d1-3936-4201-ad74-e95993e64b92</onfalse></stage><stage stageid="741cc1d1-3936-4201-ad74-e95993e64b92" name="Exception" type="Exception"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><display x="225" y="120" /><font family="Tahoma" size="10" style="Regular" color="000000" /><exception type="" detail=""Failed to delete selection: " & [Message]" /></stage><stage stageid="aac1165a-4574-4834-a68e-18db8cdd0216" name="Success" type="Data"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><display x="-195" y="150" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="52ea365d-8434-45cb-97ba-cd7c741b7c7c" name="Message" type="Data"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><display x="-195" y="180" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="fd2ee59b-4044-4f2c-8439-05e1a9b23c7d" name="Shift" type="Data"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><display x="-195" y="30" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="1f31ede9-3b32-4aaf-9b55-573cb227a850" name="Shift Left?" type="Decision"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><loginhibit /><display x="15" y="-30" w="90" h="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><decision expression="Trim(Upper([Shift]))="LEFT"" /><ontrue>594ef012-6d63-4256-a43c-dd84c172ad15</ontrue><onfalse>21ff25a4-b431-43fb-af46-02fff92627e7</onfalse></stage><stage stageid="594ef012-6d63-4256-a43c-dd84c172ad15" name="Shift Type" type="Calculation"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><loginhibit /><display x="120" y="-30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>dc1f9d40-b099-44c3-a2c1-e782413b0914</onsuccess><calculation expression="-4161" stage="Shift Type" /></stage><stage stageid="c07375e4-4e0d-4a0d-b7b2-d1bab9884769" name="Shift Type" type="Data"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><display x="-195" y="120" w="150" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="21ff25a4-b431-43fb-af46-02fff92627e7" name="Shift Type" type="Calculation"><subsheetid>659749b0-1f00-4e33-956d-6be6172a8739</subsheetid><loginhibit /><display x="15" y="45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>dc1f9d40-b099-44c3-a2c1-e782413b0914</onsuccess><calculation expression="-4121" stage="Shift Type" /></stage><stage stageid="53f2c5f2-ac8f-40c2-ace8-24614c6d3676" name="Run Macro" type="SubSheetInfo"><subsheetid>4229da44-68c0-4b51-9d2c-08be4a9d6727</subsheetid><narrative>Runs the specified macro. Depending on how the macro has been created the name will be one of the following: A. Just the macro name e.g. MyMacro B. The workbook and macro name e.g. MyWorkbook.xls!MyMacro C. The workbook, worksheet and the macro name e.g. 'MyWorkbook.xls!'MyWorksheet.MyMacro</narrative><display x="-225" y="-15" w="300" h="210" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="da9401ad-8267-4f76-bb0d-02d380427eb5" name="Start" type="Start"><subsheetid>4229da44-68c0-4b51-9d2c-08be4a9d6727</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" narrative="The integer handle identifying the instance that contains the macro. The default of zero indicates the currently active instance." stage="Handle" /><input type="text" name="Macro Name" narrative="The name of the macro to run" stage="Macro Name" /></inputs><onsuccess>a19d33b9-0a8b-4fb1-b333-7fb65c7733ab</onsuccess></stage><stage stageid="0a6413b8-4ce8-4399-b3e2-974e44d812af" name="End" type="End"><subsheetid>4229da44-68c0-4b51-9d2c-08be4a9d6727</subsheetid><loginhibit /><display x="15" y="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="a19d33b9-0a8b-4fb1-b333-7fb65c7733ab" name="Run Macro" type="Code"><subsheetid>4229da44-68c0-4b51-9d2c-08be4a9d6727</subsheetid><loginhibit /><display x="15" y="-15" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="number" name="Handle" expr="[Handle]" /><input type="text" name="Macro Name" expr="[Macro Name]" /></inputs><onsuccess>0a6413b8-4ce8-4399-b3e2-974e44d812af</onsuccess><code><![CDATA[GetInstance(Handle).Run(Macro_Name)]]></code></stage><stage stageid="669163d5-5b66-446d-84fc-ddaaccf6ecc8" name="Handle" type="Data"><subsheetid>4229da44-68c0-4b51-9d2c-08be4a9d6727</subsheetid><loginhibit /><display x="165" y="-105" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>0</initialvalue><private /><alwaysinit /></stage><stage stageid="d95761c1-c5f3-46a0-8b86-7f90e58418cc" name="Macro Name" type="Data"><subsheetid>4229da44-68c0-4b51-9d2c-08be4a9d6727</subsheetid><loginhibit /><display x="165" y="-60" w="90" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="58d3ca4f-4467-492d-b85a-fd7ab4271110" name="Activate Worksheet" type="SubSheet"><subsheetid>f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e</subsheetid><loginhibit /><display x="135" y="-60" w="150" h="30" /><inputs><input type="number" name="handle" narrative="The integer handle identifying the instance on which the worksheet which should be activated resides. The default of zero indicates the currently active instance." expr="[handle]" /><input type="text" name="Workbook Name" narrative="The name of the workbook in which the sheet exists - The default empty value indicates the currently active workbook on the specified instance." expr="[workbookname]" /><input type="text" name="Worksheet Name" narrative="The name of the sheet which should be activated. The default empty text value indicates that the currently active sheet should be, er, activated, making this a no-op." expr="[worksheetname]" /><input type="flag" name="Create If Missing?" narrative="True to create the sheet if it isn't present on the specified workbook; False to not do so." expr="False" /></inputs><onsuccess>680eac96-2bd0-4d02-a62b-ac7bf684dae9</onsuccess><processid>733c2840-8162-465a-a8f2-7d023087c369</processid></stage><stage stageid="31fdd089-280c-4f33-ba2b-a9b52b556682" name="Open Active Instance" type="Block"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="105" y="-255" w="360" h="375" /><font family="Segoe UI" size="10" style="Regular" color="7FB2E5" /></stage><stage stageid="c478137a-cdb0-4cd8-bb73-fe4c052d6200" name="Timeout" type="Data"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><display x="-210" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>30</initialvalue><private /><alwaysinit /></stage><stage stageid="9474db50-6935-47fa-b862-4aa1a49143f8" name="CheckTimeout" type="Code"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="375" y="-165" w="120" h="30" /><outputs><output type="flag" name="TimeoutOccoured" stage="Timeout Occoured" /></outputs><onsuccess>6af35f22-949f-47dd-8517-78b00d73f8d9</onsuccess><code><![CDATA[TimeoutOccoured = TypeOf mLastException Is TimeoutException mLastException = Nothing]]></code></stage><stage stageid="6af35f22-949f-47dd-8517-78b00d73f8d9" name="Timeout Occoured?" type="Decision"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="375" y="-120" w="90" h="30" /><decision expression="[Timeout Occoured]" /><ontrue>40a1c81a-4d1f-484f-bcde-c2cc59d83dbd</ontrue><onfalse>59ebf811-1faf-4486-8630-6d2de19027f5</onfalse></stage><stage stageid="40a1c81a-4d1f-484f-bcde-c2cc59d83dbd" name="Anchor1" type="Anchor"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><loginhibit /><display x="570" y="-120" w="10" h="10" /><onsuccess>567674ba-270a-4107-ada5-1dae59125522</onsuccess></stage><stage stageid="3bd76d6f-b60f-4a9d-9293-19a63314f33e" name="Timeout Occoured" type="Data"><subsheetid>ec281dc5-ed57-4b8b-9bf5-212e314657aa</subsheetid><display x="-210" y="105" w="120" h="30" /><datatype>flag</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="4fa207ba-9e59-4717-8a0e-f28210974ff9" name="Timeout" type="Data"><subsheetid>6e7cb0ad-5910-4065-aab2-2919726bae39</subsheetid><display x="-195" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>30</initialvalue><private /><alwaysinit /></stage><stage stageid="e87e0c42-73bb-43a9-9fb1-0c07d02391e1" name="Timeout" type="Data"><subsheetid>21a53e34-8128-41cb-ad73-17250758ff23</subsheetid><display x="-255" y="105" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>30</initialvalue><private /><alwaysinit /></stage><stage stageid="04901364-93ea-4b62-a8ea-471525e3d12d" name="Timeout" type="Data"><subsheetid>6ccaae8b-c06f-45c8-8772-835218881458</subsheetid><loginhibit /><display x="-465" y="255" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>30</initialvalue><private /><alwaysinit /></stage><stage stageid="c14b670d-b87c-43c9-a54f-7653da70eb83" name="Timeout" type="Data"><subsheetid>2fb01e3f-e275-43bc-83eb-579001da335b</subsheetid><display x="-210" y="150" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>30</initialvalue><private /><alwaysinit /></stage><stage stageid="7cef178b-10af-4ed1-8400-e41a9640bc73" name="Timeout" type="Data"><subsheetid>6ec3006a-6553-4526-b522-32526c4aa3cc</subsheetid><display x="-210" y="60" w="120" h="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>number</datatype><initialvalue>30</initialvalue><private /><alwaysinit /></stage><stage stageid="3a73f260-90db-458b-8d72-ef07a38548f1" name="Timeout" type="Data"><subsheetid>9f7a4a91-68c9-4871-bb65-417e96cc4ad1</subsheetid><loginhibit /><display x="-195" y="105" /><datatype>number</datatype><initialvalue>30</initialvalue><private /><alwaysinit /></stage><stage stageid="684b23a1-3d16-4db8-a54b-5925cf13321d" name="Use Header" type="Data"><subsheetid>f92e2a34-0aa8-4ca1-b4ac-5dce2318ec5e</subsheetid><display x="330" y="-120" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>flag</datatype><initialvalue>True</initialvalue><private /><alwaysinit /></stage><stage stageid="b12c3527-d491-4e7d-a2f0-da0a1ea7b44d" name="fetchDataWithMethod" type="Data"><subsheetid>8e22a2d9-d4c3-4fe0-bbf0-4788d1812d30</subsheetid><display x="-195" y="150" w="120" h="30" /><datatype>text</datatype><initialvalue xml:space="preserve">Value</initialvalue><private /><alwaysinit /></stage></process></object> <object id="d39ef435-da5c-4e38-a846-b903b2cf3d8e" name="Utility - JSON" xmlns="http://www.blueprism.co.uk/product/process"><process name="Utility - JSON" version="6.10.0.30674" bpversion="6.10.0.30674" narrative="An object for parsing JSON into a collection and turning a collection into JSON." byrefcollection="true" type="object" runmode="Exclusive"><appdef><element name="Application Root"><id>8f20ac0c-296f-43c3-b0d9-59b5b2b7da1c</id><type>Application</type><basetype>Application</basetype><datatype>unknown</datatype><diagnose>False</diagnose></element></appdef><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view><preconditions /><endpoint narrative="" /><subsheet subsheetid="6a9ccb5a-8cc3-44ac-b343-39680558062f" type="CleanUp" published="True"><name>Clean Up</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="560472b9-cea4-41d5-bc36-c49d6c1b26e6" type="Normal" published="True"><name>Collection to JSON</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="e5aeb4cb-cd25-4535-b3be-b46681b4e6b6" type="Normal" published="True"><name>JSON to Collection</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><subsheet subsheetid="e53062c7-68de-4763-b37a-456688d0d607" type="Normal" published="True"><name>JSON to Collection (skipping JArray)</name><view><camerax>0</camerax><cameray>0</cameray><zoom version="2">1.25</zoom></view></subsheet><stage stageid="222ee4c2-914e-4b2b-8e13-443c1c76b3dd" name="Start" type="Start"><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>ff6524a3-da73-439c-a4ba-2aabb994009c</onsuccess></stage><stage stageid="ff6524a3-da73-439c-a4ba-2aabb994009c" name="End" type="End"><loginhibit /><display x="15" y="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="7fd071f3-6769-4dd5-95cf-a911c73c42ff" name="Stage1" type="ProcessInfo"><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /><references><reference>System.Data.dll</reference><reference>System.Xml.dll</reference><reference>System.Drawing.dll</reference><reference>Newtonsoft.Json.dll</reference><reference>System.Core.dll</reference></references><imports><import>System.Data</import><import>System.Drawing</import><import>Newtonsoft.Json</import><import>System.Collections.Generic</import><import>System.Text</import><import>System.IO</import><import>System</import><import>Newtonsoft.Json.Linq</import><import>System.Collections</import><import>System.Linq</import></imports><language>visualbasic</language><globalcode><![CDATA[]]></globalcode><code><![CDATA[ Private Class JSON Public Const Array As String = "JSON:Array" Public Const Null As String = "JSON:Null" End Class Private mUseNewParseMethod As Boolean Public Function ConvertToJSON(ByVal dt As DataTable) As String Dim o As Object = SerialiseGeneric(dt, True) Return JsonConvert.SerializeObject(o) End Function Public Function SerialiseGeneric(ByVal o As Object, ByVal removeArray As Boolean) As Object Dim dt As DataTable = TryCast(o, DataTable) If dt IsNot Nothing Then Return SerialiseDataTable(dt) End If Dim dr As DataRow = TryCast(o, DataRow) If dr IsNot Nothing Then Return SerialiseDataRow(dr, removeArray) End If Dim s As String = TryCast(o, String) If s IsNot Nothing AndAlso s = JSON.Null Then Return Nothing End If If o IsNot Nothing Then Return o End If Return Nothing End Function Public Function SerialiseDataTable(ByVal dt As DataTable) As Object If IsSingleRow(dt) Then Return SerialiseGeneric(dt.Rows(0), False) Else Dim ja As New JArray() For Each r As DataRow In dt.Rows ja.Add(SerialiseGeneric(r, True)) Next Return ja End If End Function Public Function IsSingleRow(ByVal dt As DataTable) As Boolean If dt.ExtendedProperties.Contains("SingleRow") Then Return CBool(dt.ExtendedProperties("SingleRow")) End If 'Fallback for older versions of blueprism Return dt.Rows.Count = 1 End Function Public Function SerialiseDataRow(ByVal dr As DataRow, ByVal removeArray As Boolean) As Object Dim jo As New JObject() For Each c As DataColumn In dr.Table.Columns Dim s As String = c.ColumnName If removeArray AndAlso s = JSON.Array Then Return SerialiseGeneric(dr(s), True) End If jo(s) = JToken.FromObject(SerialiseGeneric(dr(s), False)) Next Return jo End Function Public Function ConvertToDataTable(ByVal json As String) As DataTable Dim o As Object = JsonConvert.DeserializeObject(json) Return DirectCast(DeserialiseGeneric(o, True), DataTable) End Function Private Function DeserialiseGeneric(ByVal o As Object, ByVal populate As Boolean) As Object Dim a As JArray = TryCast(o, JArray) If a IsNot Nothing Then Return If(mUseNewParseMethod, DeserialiseArrayWithoutJArray(a, populate), DeserialiseArray(a, populate) ) End If Dim jo As JObject = TryCast(o, JObject) If jo IsNot Nothing Then Return DeserialiseObject(jo, populate) End If Dim jv As JValue = TryCast(o, JValue) If jv IsNot Nothing Then Return jv.Value End If Return JSON.Null End Function Private Function GetKey(ByVal kv As KeyValuePair(Of String, JToken)) As String If kv.Key IsNot Nothing Then Return kv.Key.ToString() End If Return "" End Function Private Function DeserialiseObject(ByVal o As JObject, ByVal populate As Boolean) As DataTable Dim dt As New DataTable For Each kv As KeyValuePair(Of String, JToken) In o Dim type As Type = GetTypeOf(DeserialiseGeneric(kv.Value, False)) dt.Columns.Add(GetKey(kv), type) Next If populate Then Dim dr As DataRow = dt.NewRow() For Each kv As KeyValuePair(Of String, JToken) In o dr(getKey(kv)) = DeserialiseGeneric(kv.Value, True) Next dt.Rows.Add(dr) End If Return dt End Function Private Function DeserialiseArrayWithoutJArray(ByVal jarr As JArray, ByVal populate As Boolean) As DataTable Dim dt As New DataTable Dim first As Type = Nothing For Each e As Object In jarr If first Is Nothing Then first = GetTypeOf(DeserialiseGeneric(e, False)) End If If GetTypeOf(DeserialiseGeneric(e, False)) IsNot first Then Throw New Exception("Data Type mismatch in array") End If Next Dim columns As New Specialized.OrderedDictionary() Dim allTypesInColumnsMatch = jarr.All( Function(e) If Not TypeOf e Is JObject Then Return False For Each pair As KeyValuePair(Of String, JToken) In DirectCast(e, JObject) Dim val As Object = pair.Value If TypeOf val Is JValue Then val = CType(val, JValue).Value Dim tp = If(val, CObj("")).GetType() If columns.Contains(pair.Key) Then If tp <> columns(pair.Key) Then Return False Else columns(pair.Key) = tp End If Next Return True End Function ) If allTypesInColumnsMatch Then For Each pair As DictionaryEntry In columns Dim key As String = CStr(pair.Key) Dim tp as Type = CType(pair.Value, Type) If tp = GetType(JObject) OrElse tp = GetType(JArray) Then dt.Columns.Add(key, GetType(DataTable)) Else dt.Columns.Add(key, tp) End If Next ElseIf first IsNot Nothing Then dt.Columns.Add(JSON.Array, first) End If If populate Then For Each e As Object In jarr Dim dr As DataRow = dt.NewRow() If allTypesInColumnsMatch Then For Each pair As KeyValuePair(Of String, JToken) In DirectCast(e, JObject) dr(pair.Key) = DeserialiseGeneric(pair.Value, True) Next Else dr(JSON.Array) = DeserialiseGeneric(e, True) End If dt.Rows.Add(dr) Next End If Return dt End Function Private Function DeserialiseArray(ByVal o As JArray, ByVal populate As Boolean) As DataTable Dim dt As New DataTable Dim first As Type = Nothing For Each e As Object In o If first Is Nothing Then first = GetTypeOf(DeserialiseGeneric(e, False)) End If If GetTypeOf(DeserialiseGeneric(e, False)) IsNot first Then Throw New Exception("Data Type mismatch in array") End If Next If first IsNot Nothing Then dt.Columns.Add(JSON.Array, first) End If If populate Then For Each e As Object In o Dim dr As DataRow = dt.NewRow() dr(JSON.Array) = DeserialiseGeneric(e, True) dt.Rows.Add(dr) Next End If Return dt End Function Private Function GetTypeOf(ByVal o As Object) As Type If o Is Nothing Then Return GetType(String) Return o.GetType End Function]]></code></stage><stage stageid="c290e7f4-b01b-4012-9422-044432a3cc82" name="Clean Up" type="SubSheetInfo"><subsheetid>6a9ccb5a-8cc3-44ac-b343-39680558062f</subsheetid><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="662f70f7-7036-462d-b9bf-f35265dd971a" name="Start" type="Start"><subsheetid>6a9ccb5a-8cc3-44ac-b343-39680558062f</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><onsuccess>153f4275-2acd-48a5-b6e6-409fcb2441a8</onsuccess></stage><stage stageid="153f4275-2acd-48a5-b6e6-409fcb2441a8" name="End" type="End"><subsheetid>6a9ccb5a-8cc3-44ac-b343-39680558062f</subsheetid><loginhibit /><display x="15" y="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="885aaf30-a216-44c5-975b-ca58ce02f815" name="JSON to Collection" type="SubSheetInfo"><subsheetid>e5aeb4cb-cd25-4535-b3be-b46681b4e6b6</subsheetid><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="e5625896-d966-4a10-aa39-2e85611f490f" name="Start" type="Start"><subsheetid>e5aeb4cb-cd25-4535-b3be-b46681b4e6b6</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="json" stage="json" /></inputs><onsuccess>779de445-0658-4a45-a1ef-a38d6de24429</onsuccess></stage><stage stageid="66526e3e-8b9e-4452-9ca8-f70baa9aec4a" name="End" type="End"><subsheetid>e5aeb4cb-cd25-4535-b3be-b46681b4e6b6</subsheetid><loginhibit /><display x="15" y="45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="collection" name="Result" stage="Result" /></outputs></stage><stage stageid="007e04e2-4ed0-4afd-87d3-c06d79f48d86" name="new" type="Note"><subsheetid>6a9ccb5a-8cc3-44ac-b343-39680558062f</subsheetid><narrative>Clean Up Page This is an optional page where you might choose to perform some finalisation (or "cleanup") tasks as your business object is closed down. The cleanup action will be called automatically immediately after closing your business object at the end of a business process. You will not be able to call this action from a business process, nor will it be called at any other time than before the disposal of the business object.</narrative><display x="-180" y="60" w="180" h="230" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="d92fd7fc-b028-457a-a14a-17d66c4b5513" name="new" type="Note"><narrative>Initialise Page This is an optional page where you might choose to perform some initialisation tasks after your business object is loaded. The initialise action will be called automatically immediately after loading your business object. You will not be able to call this action from a business process, nor will it be called at any other time than after the creation of the object.</narrative><display x="-180" y="60" w="180" h="230" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="779de445-0658-4a45-a1ef-a38d6de24429" name="JSON To Collection" type="Code"><subsheetid>e5aeb4cb-cd25-4535-b3be-b46681b4e6b6</subsheetid><loginhibit /><display x="15" y="-30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="json" expr="[json]" /></inputs><outputs><output type="collection" name="result" stage="Result" /></outputs><onsuccess>66526e3e-8b9e-4452-9ca8-f70baa9aec4a</onsuccess><code><![CDATA[result = ConvertToDataTable(json)]]></code></stage><stage stageid="da3984e5-ce52-4649-81c5-a71d452a5ba0" name="json" type="Data"><subsheetid>e5aeb4cb-cd25-4535-b3be-b46681b4e6b6</subsheetid><display x="90" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="0e93e91c-85e1-4c75-b74c-52d08c0724e6" name="Collection to JSON" type="SubSheetInfo"><subsheetid>560472b9-cea4-41d5-bc36-c49d6c1b26e6</subsheetid><display x="-195" y="-105" w="150" h="90" /><font family="Tahoma" size="10" style="Regular" color="000000" /></stage><stage stageid="c10fccbd-439b-447d-908a-58f20a540146" name="Start" type="Start"><subsheetid>560472b9-cea4-41d5-bc36-c49d6c1b26e6</subsheetid><loginhibit /><display x="15" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="collection" name="Data" stage="Data" /></inputs><onsuccess>7923115c-5283-4694-b2c1-142afb4d3788</onsuccess></stage><stage stageid="ede1f653-07f1-42eb-8616-8d2d3dfb5244" name="End" type="End"><subsheetid>560472b9-cea4-41d5-bc36-c49d6c1b26e6</subsheetid><loginhibit /><display x="15" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="text" name="JSON" stage="JSON" /></outputs></stage><stage stageid="8f488472-d2dd-4bbc-a98e-07d6a494ab3f" name="Result" type="Collection"><subsheetid>e5aeb4cb-cd25-4535-b3be-b46681b4e6b6</subsheetid><display x="90" y="45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>collection</datatype><private /><alwaysinit /></stage><stage stageid="7923115c-5283-4694-b2c1-142afb4d3788" name="Collection To JSON" type="Code"><subsheetid>560472b9-cea4-41d5-bc36-c49d6c1b26e6</subsheetid><loginhibit /><display x="15" y="-30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="collection" name="data" expr="[Data]" /></inputs><outputs><output type="text" name="json" stage="JSON" /></outputs><onsuccess>ede1f653-07f1-42eb-8616-8d2d3dfb5244</onsuccess><code><![CDATA[json = convertToJSON(data)]]></code></stage><stage stageid="dbeac687-55ba-4b1a-9e9b-1a5f1e763886" name="Data" type="Collection"><subsheetid>560472b9-cea4-41d5-bc36-c49d6c1b26e6</subsheetid><loginhibit /><display x="90" y="-105" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>collection</datatype><private /><alwaysinit /></stage><stage stageid="60425486-0e54-4004-afef-6ccb7e96828d" name="JSON" type="Data"><subsheetid>560472b9-cea4-41d5-bc36-c49d6c1b26e6</subsheetid><display x="75" y="60" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="68820997-9906-40ef-b5f3-325f6f0a25b9" name="JSON to Collection (skipping JArray)" type="SubSheetInfo"><subsheetid>e53062c7-68de-4763-b37a-456688d0d607</subsheetid><display x="-195" y="-105" w="150" h="90" /></stage><stage stageid="14799289-a9b9-4b93-aeb6-f0240547be63" name="Start" type="Start"><subsheetid>e53062c7-68de-4763-b37a-456688d0d607</subsheetid><loginhibit /><display x="-30" y="-120" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="json" stage="json" /></inputs><onsuccess>8cb729e4-705c-400b-8d1d-0b54dd51fb94</onsuccess></stage><stage stageid="21187841-67f3-4ed1-a3b0-de763bb1e801" name="End" type="End"><subsheetid>e53062c7-68de-4763-b37a-456688d0d607</subsheetid><loginhibit /><display x="-30" y="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><outputs><output type="collection" name="Result" stage="Result" /></outputs></stage><stage stageid="8cb729e4-705c-400b-8d1d-0b54dd51fb94" name="JSON To Collection Without JArray" type="Code"><subsheetid>e53062c7-68de-4763-b37a-456688d0d607</subsheetid><loginhibit /><display x="-30" y="-45" /><font family="Tahoma" size="10" style="Regular" color="000000" /><inputs><input type="text" name="json" expr="[json]" /></inputs><outputs><output type="collection" name="result" stage="Result" /></outputs><onsuccess>21187841-67f3-4ed1-a3b0-de763bb1e801</onsuccess><code><![CDATA[Try mUseNewParseMethod = True result = ConvertToDataTable(json) Finally mUseNewParseMethod = False End Try]]></code></stage><stage stageid="b3a37b86-f505-4522-80d4-2c9e45ab723c" name="json" type="Data"><subsheetid>e53062c7-68de-4763-b37a-456688d0d607</subsheetid><display x="45" y="-120" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>text</datatype><initialvalue /><private /><alwaysinit /></stage><stage stageid="98ca8a8f-1ce6-4cb7-85e6-9fff8b1b06f9" name="Result" type="Collection"><subsheetid>e53062c7-68de-4763-b37a-456688d0d607</subsheetid><display x="45" y="30" /><font family="Tahoma" size="10" style="Regular" color="000000" /><datatype>collection</datatype><private /><alwaysinit /></stage></process></object> <webapiservice id="24349d18-a8b6-4536-83cf-12339afe0d39" name="Teneo Fetch" enabled="true" xmlns="http://www.blueprism.co.uk/product/webapiservice"> <configuration baseurl="https://operations-dev-a.teneocloud.com/blue-prism-connector/" xmlns=""> <actions> <action id="6" name="GET" enabled="true" enableRequestOutputParameter="true" disableSendingOfRequest="false"> <description><![CDATA[]]></description> <request httpmethod="GET" urlpath=";jsessionid=[sessionID]?viewtype=[viewtype]&command=[command]&userinput=[userinput]"> <headers /> <bodycontent type="0"></bodycontent> </request> <parameters> <actionparameter name="command" expose="true" datatype="64"> <initialvalue><![CDATA[]]></initialvalue> <description><![CDATA[]]></description> </actionparameter> <actionparameter name="userinput" expose="true" datatype="64"> <initialvalue><![CDATA[]]></initialvalue> <description><![CDATA[]]></description> </actionparameter> <actionparameter name="sessionID" expose="true" datatype="64"> <initialvalue><![CDATA[]]></initialvalue> <description><![CDATA[]]></description> </actionparameter> </parameters> <outputparameters> <parameters> <customoutputparameter type="JsonPath" name="Output" path="$.output" datatype="collection"></customoutputparameter> <customoutputparameter type="JsonPath" name="SessionID" path="$.sessionId" datatype="text"></customoutputparameter> </parameters> <code><![CDATA[]]></code> </outputparameters> </action> <action id="7" name="End Session" enabled="true" enableRequestOutputParameter="true" disableSendingOfRequest="false"> <description><![CDATA[endsession;jsessionid=[sessionID]?viewtype=[viewtype]]]></description> <request httpmethod="GET" urlpath="endsession?viewtype=[viewtype]"> <headers /> <bodycontent type="0"></bodycontent> </request> <parameters> <actionparameter name="sessionID" expose="true" datatype="64"> <initialvalue><![CDATA[]]></initialvalue> <description><![CDATA[]]></description> </actionparameter> </parameters> <outputparameters> <parameters> <customoutputparameter type="JsonPath" name="status" path="$.status" datatype="number"></customoutputparameter> <customoutputparameter type="JsonPath" name="message" path="$.message" datatype="text"></customoutputparameter> </parameters> <code><![CDATA[]]></code> </outputparameters> </action> </actions> <commonparameters> <actionparameter name="viewtype" expose="false" datatype="64"> <initialvalue><![CDATA[tieapi]]></initialvalue> <description><![CDATA[]]></description> </actionparameter> </commonparameters> <commonheaders /> <commonauthentications> <authentication type="0" /> </commonauthentications> <commoncode> <codeproperties code="" language="visualbasic"> <namespaces> <namespace>System</namespace> <namespace>System.Drawing</namespace> <namespace>System.Data</namespace> </namespaces> <references> <reference>System.dll</reference> <reference>System.Data.dll</reference> <reference>System.Xml.dll</reference> <reference>System.Drawing.dll</reference> </references> </codeproperties> </commoncode> <configurationsettings> <configurationsettings requesttimeout="10" authserverrequesttimeout="10" /> </configurationsettings> </configuration> </webapiservice> <process-group id="01de2b6e-9827-4579-9952-fb2310bab474" name="Connector" isDefaultGroup="True" xmlns="http://www.blueprism.co.uk/product/process-group"> <members> <process id="be13ff1a-496d-48cb-b0ee-f3823b9da62d" /> <process id="2b4664ab-3928-4464-a78c-bfb869c59af9" /> </members> </process-group> <object-group id="82e76a91-d459-4bc3-8bd2-20ea825da982" name="Connector" isDefaultGroup="True" xmlns="http://www.blueprism.co.uk/product/object-group"> <members> <object id="66085a0f-6bf6-45e2-b5ed-6345f014f05b" /> <object id="d39ef435-da5c-4e38-a846-b903b2cf3d8e" /> </members> </object-group> </bpr:contents> </bpr:release>