Calling a .vbs script from Excel VBA

后端 未结 4 1933
眼角桃花
眼角桃花 2020-12-08 08:43

Is it possible to call a .vbs script from a VBA code whenever needed? If possible then can you give me a sample code of how to do so?

相关标签:
4条回答
  • 2020-12-08 09:25

    To run a file:

    Shell "wscript c:\null\a.vbs", vbNormalFocus
    

    replacing wscript with cscript if the VBS wants to use the console.

    Or you can add a reference to the Microsoft Script Control and interact with the VBScript runtime directly to execute VBS code, procedures etc;

    Dim scr As ScriptControl: Set scr = New ScriptControl
    scr.Language = "VBScript"
    scr.AddCode "sub T: msgbox ""All Hail Cthulhu"": end sub"
    scr.Run "T"
    
    0 讨论(0)
  • 2020-12-08 09:34

    Try somthing like this

    ChDir ThisWorkbook.Path
    Shell "wscript " & ThisWorkbook.Path & "\your.vbs", vbNormalFocus
    

    It helped me.

    0 讨论(0)
  • 2020-12-08 09:40

    I only want to add to Alex' answer, that in some environments the object must be created in the following way:

    set scr = CreateObject("MSScriptControl.ScriptControl")
    

    If Alex adds this to his answer, I will delete this one.

    0 讨论(0)
  • 2020-12-08 09:44

    You may want to use """ if your path name contains a - For me the following solved this issue:

    Shell "cscript """ & ActiveWorkbook.Path & """\your.vbs", vbNormalFocus
    
    0 讨论(0)
提交回复
热议问题