Dunque dovresti procedere così:
1) Apri il Blocco Note e ci incolli questo:
Dim xlApp, WB, FSO, scriptPath, scriptFolder, excelFile
Set FSO = CreateObject("Scripting.FileSystemObject")
scriptPath = WScript.ScriptFullName
scriptFolder = FSO.GetParentFolderName(scriptPath)
excelFile = scriptFolder & "\TuoFileExcel.xlsm"
Set xlApp = CreateObject("Excel.Application")
xlApp.WindowState = -4137
xlApp.Visible = False
Set WB = xlApp.Workbooks.Open(excelFile)
Fai attenzione alla riga: excelFile = scriptFolder & "\TuoFileExcel.xlsm" <<<< qui devi indicare il nome del file che devi aprire.
Poi Salva con nome e chiamalo come più ti piace, l'importante è che alla fine del nome gli aggiungi .vbs e scegli SALVA COME: TUTTI I FILE (*.*)
Esempio: "LanciaFile.vbs"
Ora hai creato lo script per lanciare il file.
Poi in Questa_cartella_di_lavoro del tuo file Excel, nell'evento Open ci metti:
Option Explicit
Private Sub Workbook_Open()
UserForm1.Show
End Sub
Ovviamente devi indicare il vero nome da UserForm. Io ho ipotizzato che fosse UserForm1.
Servirà anche la proceduta di chiusura del Workbook altrimenti anche quando pensi di averlo chiuso, rischi di lascialo aperto ma nascosto e tu non te ne accorgi. Un primo passo può essere semplicemente questa macro nella UserForm:
Option Explicit
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Application.Quit
End Sub
Però ripeto...è solo un accenno questo perché con Quit chiudi brutalmente il Workbook senza salvare nulla. Quindi penso che necessita di una procedura ad hoc che Salva&Chiude
Una volta che hai fatto tutto...raggruppa lo script in vbs e il file Excel nello stesso percorso (devono stare entrambi nella stessa cartella!) e lancia lo script con doppioclick del mouse e vedi se funziona. Se fa ciò che vuoi...prova ad aprire/manipolare/chiudere altri file Excel in contemporanea a questo e vedi se hai problemi.