====== Excel.Application ====== //Original post by [[user:Learning one]] on the [[https://www.autohotkey.com/board/topic/56987-com-object-reference-autohotkey-v11/?p=381256|AutoHotkey Archived Forums]]// ---- **COM Object:** ''Excel.Application'' **Purpose:** Perform calculations, analyse information and visualise data in spreadsheets. **System Requirements:** Microsoft Office Excel application **Documentation Link:** [[https://docs.microsoft.com/en-us/office/vba/api/excel.application(object)|Application Object (Excel)]] **Other Links:** [[http://dmcritchie.mvps.org/excel/colors.htm|ColorIndex values]] **Basic Code Example:** oExcel := ComObjCreate("Excel.Application") ; create Excel Application object oExcel.Workbooks.Add ; create a new workbook (oWorkbook := oExcel.Workbooks.Add) oExcel.Range("A1").Value := 3 ; set cell A1 to 3 oExcel.Range("A2").Value := 7 ; set cell A2 to 7 oExcel.Range("A3").Formula := "=SUM(A1:A2)" ; set formula for cell A3 to SUM(A1:A2) oExcel.Range("A1:A3").Interior.ColorIndex := 19 ; fill range of cells from A1 to A3 with color number 19 oExcel.Range("A3").Borders(8).LineStyle := 1 ; set top border line style for cell A3 (xlEdgeTop = 8, xlContinuous = 1) oExcel.Range("A3").Borders(8).Weight := 2 ; set top border weight for cell A3 (xlThin = 2) oExcel.Range("A3").Font.Bold := 1 ; set bold font for cell A3 A1 := oExcel.Range("A1").Value ; get value from cell A1, and store it in A1 variable oExcel.Range("A4").Select ; select A4 cell oExcel.Visible := 1 ; make Excel Application visible MsgBox % A1 "`n" oExcel.Range("A2").Value ; check. You can use Round() function to round numbers to the nearest integer ExitApp **How to access Workbook without opening it?** FilePath := "C:\Book1.xlsx" ; example path oWorkbook := ComObjGet(FilePath) ; access Workbook object MsgBox % oWorkbook.Sheets(1).Range("A1").Value ; get value from A1 cell in first sheet **How to access active Excel Application object?** Use ''oExcel := Excel_Get()'', not ''oExcel := ComObjActive("Excel.Application")''. More info [[http://www.autohotkey.com/forum/viewtopic.php?p=518613#518613|here]]. **How to access active Workbook?** try oWorkbook := Excel_Get().ActiveWorkbook ; try to access active Workbook object catch return ; case when Excel doesn't exist, or it exists but there is no active workbook. Just Return or Exit or ExitApp. ; if there is active workbook, code continues execution... oWorkbook.ActiveSheet.Range("B2").Value := "B2" ; set value of B2 cell in active sheet to "B2" **How to access Excel object from Workbook object?** oExcel := oWorkbook.Application ; returns Excel application object that owns Workbook object