Per quanto ne so io, credo di no.
Tuttavia, forse il seguente link potrebbe essere di interesse:
https://msdn.microsoft.com/en-us/library/aa262321(v=vs.60).aspx
Interessante ma un po' troppo tanto oltre per me :-)
Io al massimo posso arrivare, nel caso mi servisse, a qualcosa del genere da lanciare da un file excel dopo aver salvato tutti i file nella medesima directory.
Ma anche così ..... mmmmmhhhhhhhh ... non so!!!! ... non mi fiderei tanto.
Sub Fix_MSCAL_OCX_Win64bit()
Dim Risp As Integer
Risp = MsgBox("Verrà lanciata la procedura per il Fix della mancata presenza del componente aggiuntivo MSCAL.OCX." & vbCrLf & _
"Assicurarsi che i file MSCAL.OCX e MSCAL.HLP, forniti assieme a questo file, siano salvati nella stessa directory" & _
"in cui è salvato questo file." & vbCrLf & "Continuare?", vbQuestion + vbOKCancel + vbDefaultButton1, "Fix MSCAL.OCX per Windows 64-bit")
If Risp = vbCancel Then Exit Sub
Const sMsCalOcxName = "MSCAL.OCX"
Const sMsCalHelpName = "MSCAL.HLP"
Const sDestinationPath = "C:\Windows\SysWOW64"
Const sExeName = "regsvr32.exe"
Dim FSO As Object
Dim sPathFile As String
Set FSO = CreateObject("Scripting.FileSystemObject")
sPathFile = ThisWorkbook.Path & Application.PathSeparator
With FSO
If .FolderExists(sDestinationPath) Then
If .FileExists(sPathFile & sMsCalOcxName) And .FileExists(sPathFile & sMsCalHelpName) Then
.CopyFile sPathFile & sMsCalOcxName, sDestinationPath, True
.CopyFile sPathFile & sMsCalHelpName, sDestinationPath, True
.DeleteFile sPathFile & sMsCalOcxName
.DeleteFile sPathFile & sMsCalHelpName
MsgBox "I files " & sMsCalOcxName & " e " & sMsCalHelpName & " sono stati copiati in " & sDestinationPath, vbInformation, "Fix MSCAL.OCX"
Call Shell("cmd.exe /C" & sDestinationPath & sExeName & " " & sMsCalOcxName, vbHide)
Else
MsgBox "I files " & sMsCalOcxName & " e " & sMsCalHelpName & " non sono presenti in " & sPathFile & vbCrLf & _
"Copiare il file in " & sPathFile & " e lanciare nuovamente il Fix!", vbCritical, "Fix MSCAL.OCX"
Exit Sub
End If
Else
MsgBox "La directory " & sDestinationPath & " non esiste!" & vbCrLf & _
"La procedura verrà interrotta.", vbCritical, "Fix MSCAL.OCX"
Exit Sub
End If
End With
Set FSO = Nothing
End Sub