Try declaring your variables explicitly in the vbscript... I also used a long
in the workbook code out of habit.
Code inside parameter.xlsm:
Option Explicit
Sub Proc(sParam1 As String, iParam2 As Long)
MsgBox sParam1 & " is " & iParam2 & " Years Old"
End Sub
VBScript code:
Dim objExcel As Object
Dim objWorkbook As Workbook
Dim sParam1 As String
Dim iParam2 As Long, iParam3 As Long
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\ExcelFiles\parameter.xlsm")
sParam1 = InputBox("Enter the first parameter")
iParam2 = InputBox("Enter the second parameter")
iParam3 = CInt(iParam2)
objExcel.Application.Visible = True
objExcel.Application.Run "parameter.xlsm!Proc", sParam1, iParam3
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Echo "Finished."
WScript.Quit