Jump to content

Check for macros in excel


Recommended Posts

This code returns true for your example workbook:
 

#include <Excel.au3>
#include <File.au3>

Global $sFile = "C:\temp\Huis-3D-Excel-Pendulum_97.xls"
$oExcel = _Excel_Open()
$oWorkbook = _Excel_BookOpen($oExcel, $sFile)
ConsoleWrite("Workbook has macros: " & _CheckMacros($oWorkbook, $sFile) & @CRLF)

; Code taken from http://www.siddharthrout.com/2012/04/12/check-if-an-excel-file-has-a-macro/
Func _CheckMacros($oWorkbook, $sFilepath)
    Local $sCode, $sFiletype, $sDrive, $sDir, $sFilename, $sExtension
    _PathSplit($sFilepath, $sDrive, $sDir, $sFilename, $sExtension)
    Switch StringMid($sExtension, 2)
        ; Excel files which can have a macro
        Case "XLS", "XLSM", "XLTM", "XLT", "XLA", "XLSB", "XLAM"
            With $oWorkbook.VBProject
                ; Components are like sheet1, thisworkbook, module etc.
                If .VBComponents.Count > 0 Then
                    For $i = 1 To .VBComponents.Count
                        ; Get the entire code in the module
                        $sCode = .VBComponents.Item($i).CodeModule.Lines(1, .VBComponents.Item($i).CodeModule.CountOfLines)
                        $sCode = " " & StringReplace($sCode, @CRLF, " ") & " "
                        If StringInStr($sCode, " Sub ") > 0 Then Return True
                    Next
                EndIf
            EndWith
    EndSwitch
    Return False
EndFunc   ;==>_CheckMacros

 

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

Glad to be of service :)

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...