Hi, welcome to the board. You can use this function, passing the workbook name to it.<pre>Function WBHasMacros(WBName As String) As Variant
Dim VBProj 'As VBProject
Dim VBComp 'As VBComponent
Set VBProj = Application.Workbooks(WBName).VBProject
If VBProj.Protection = vbext_pp_locked Then WBHasMacros = _
CVErr(xlErrValue): Exit Function
For Each VBComp In VBProj.VBComponents
If VBComp.CodeModule.CountOfLines > 2 Then
WBHasMacros = True
Exit Function
End If
Next VBComp
End Function</pre>Example:
?WBHasMacros("MyFormulas.xla")
True
If the workbook is locked, the function will return an error (#VALUE)
_________________
Regards,
Juan Pablo G.
MrExcel.com Consulting
This message was edited by Juan Pablo G. on 2002-08-27 17:25