Just create an instance of Excel, open the workbook and use the run method as you've described. Here's some air code:
[VBA]Function runXLMacro(wbname As String, procedurename As String)
' wbname = file and path of workbook containing the macro you want to run
' procedurename = name of the Excel macro you want to run
Dim xlApp As Object
Dim xlwb As Object
Set xlApp = GetExcelApp
Set xlwb = xlApp.Workbooks.Open (wbname)
xlApp.Run (wbname & "!procedurename)
End Function
Function GetExcelApp() As Object
' always create new instance
On Error Resume Next
Set GetExcelApp = CreateObject("Excel.Application")
On Error GoTo 0
End Function
[/VBA]
Originally Posted by neodjandre