Connects to an existing Excel instance or creates a new one
#include <Excel.au3>
_Excel_Open ( [$bVisible = True [, $bDisplayAlerts = False [, $bScreenUpdating = True [, $bInteractive = True [, $bForceNew = False]]]]] )
$bVisible | [optional] True specifies that the application will be visible (default = True) |
$bDisplayAlerts | [optional] False suppresses all prompts and alert messages while opening a workbook (default = False) |
$bScreenUpdating | [optional] False suppresses screen updating to speed up your script (default = True) |
$bInteractive | [optional] If False, Excel blocks all keyboard and mouse input by the user (except input to dialog boxes) (default = True) |
$bForceNew | [optional] True forces to create a new Excel instance even if there is already a running instance (default = False) |
Success: | the Excel application object. Sets @extended to: 0 - Excel was already running 1 - Excel was not running or $bForceNew was set to True. A new Excel instance has been created |
Failure: | 0 and sets @error. |
@error: | 1 - Error returned by ObjCreate. @extended is set to the COM error code. |
If $bDisplayAlerts is set to False and a message requires a response, Excel chooses the default response.
To enhance performance set $bScreenUpdating to False. The screen will not be updated until you set it back to true ($oExcel.ScreenUpdating = True).
Blocking user input ($obInteractive = False) will prevent the user from interfering with the AutoIt script.
If set to False, don't forget to set it back to True ($oExcel.Interactive = True)
#include <Excel.au3>
#include <MsgBoxConstants.au3>
; Create application object or connect to an already running Excel instance
Local $oExcel = _Excel_Open()
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_Open Example 1", "Error creating the Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_Open Example 1", "Excel Application has been opened successfully." & @CRLF & @CRLF & "Will _Excel_Close close the application?: " & @extended)
#include <Excel.au3>
#include <MsgBoxConstants.au3>
; Force the creation of a new Excel application and display alerts
_Excel_Open(Default, Default, Default, Default, True)
If @error Then Exit MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_Open Example 2", "Error creating a new Excel application object." & @CRLF & "@error = " & @error & ", @extended = " & @extended)
Local $aProcesses = ProcessList("Excel.exe")
If $aProcesses[0][0] = 1 Then
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_Open Example 2", "Excel Application has been opened successfully." & @CRLF & @CRLF & $aProcesses[0][0] & " Excel instance is running.")
Else
MsgBox($MB_SYSTEMMODAL, "Excel UDF: _Excel_Open Example 2", "Excel Application has been opened successfully." & @CRLF & @CRLF & $aProcesses[0][0] & " Excel instances are running.")
EndIf