¡Está buena la sugerencia de rid!...
Y, por si te "costara" hacerla funcionar, yo en visual basic (VB) haría lo siguiente:
Código vb:
Ver originalFunction Version_MSO() As String
Const dirOffice As String = "C:\Archivos de programa\Microsoft Office"
Dim folderOffice As String, msoVer As String
If Dir(dirOffice, vbDirectory) = "" Then
Version_MSO = "Carpeta MS Office inexistente"
Exit Function
End If
folderOffice = Dir(dirOffice & "\Office*", vbDirectory)
If folderOffice = "" Then
Version_MSO = "Ninguna versión de Office se encuentra instalada" & vbLf & "en la carpeta MS Office."
Exit Function
End If
Do
msoVer = CreateObject("Scripting.FileSystemObject").GetFileVersion(dirOffice & "\" & folderOffice & "\winword.exe")
If msoVer <> "" Then
Version_MSO = msoVer
Exit Function
End If
folderOffice = Dir
Loop Until folderOffice = ""
End Function
O sea: la función retorna un string.
Saludos, Cacho R.