Newsgroup: it.comp.lang.visual-basic
Titolo: esiste Excel ?

vorrei sapere se c'è qualcuno che possa indicarmi un metodo meno "grezzo" di
verificare se è installato Excel9, al posto di:
 ...on error then "no excel"
 ...CreateObject(Ecel.Apllication)
il codice scritto è dimostrativo!
Grazie.
--------------------------------
Inviato via 
http://usenet.libero.it

 ha scritto nel messaggio
news:217Z57Z90Z222Y1...@usenet.libero.it...



codice costruito tempo fa
ricordo che senza quel
 On Error Resume Next , non funzionava.
    Dim objExcel As Excel.Application
    On Error Resume Next
    Set objExcel = GetObject(, "Excel.application")  'verifica se Excel è
aperto
    If objExcel Is Nothing Then 'Se è vero Excel non è aperto
        Set objExcel = CreateObject("Excel.application")
        If objExcel Is Nothing Then 'Se vero, MS Excel non è installato
            MsgBox "MS Excel non è installato.", vbExclamation, "Warning !
Operazione annullata"
            Set objExcel = Nothing
            Exit Sub
        End If
    End If
giuseppeD

Puoi adattarla ai tuoi bisogni ... credo sia abbastanza leggibile.
Ciao, Luc
Public Function GetProgramLocation(Ext As String) As String
    '
    '
    On Error GoTo GetProgram_ErrHandler
    '
    ' "Valore" è la variabile che contiene il percorso del file
    ' e l'eventuale indice dell'icona.
    '
    Dim Temp As Variant, Valore As Variant
    '
    Dim File As String
    Dim Parametri As Integer
    '
    GetProgramLocation = ""
    '
    ' Cerca di ottenere il programma associato al tipo
    ' di file specificato.
    '
    Temp = GetRegistryValue(HKEY_CLASSES_ROOT, "." & Ext, "")
    Valore = GetRegistryValue(HKEY_CLASSES_ROOT, Temp &
"\Shell\Open\Command", "")
    If Valore = "" Then
        '
        ' Se non ottiene il nome del programma in questo modo,
        ' tenta in un'altra chiave del Registro.
        '
        Valore = GetRegistryValue(HKEY_CLASSES_ROOT, Temp &
"\Shell\Play\Command", "")
        '
        ' Se neanche in questo modo ottiene il nome del programma, esce.
        '
        If Valore = "" Then
            Exit Function
        End If
    End If
    '
    File = CStr(Valore)
    '
    ' Se il nome del file include le virgolette
    ' iniziali e finali (""), le elimina.
    '
    If Left$(File, 1) = Chr$(34) Then File = Right$(File, Len(File) - 1)
    If Right$(File, 1) = Chr$(34) Then File = Left$(File, Len(File) - 1)
    '
    Do
        '
        ' Rimuove gli eventuali parametri  della riga di comando.
        ' NOTA: questo codice controlla i tre tipici "indicatori"
        ' che introducono il parametro della riga di comando.
        ' Se il primo non c'è, controlla la presenza del secondo,
        ' se manca  anche questo,  controlla  se c'è il terzo: in
        ' caso  negativo,  non  ci  sono  parametri della riga di
        ' comando.
        '
        Parametri = InStr(File, "%")
        If Parametri = 0 Then
            Parametri = InStr(File, "/")
            If Parametri = 0 Then
                Parametri = InStr(File, "-")
            End If
        End If
        '
        If Parametri <> 0 Then File = Trim(Left$(File, Parametri - 1))
        '
    Loop Until Parametri = 0
    '
    ' Se il nome del file include le virgolette
    ' finali (""), le elimina.
    '
    If Right$(File, 1) = Chr$(34) Then File = Trim(Left$(File, Len(File) -
1))
    '
    ' Se il nome del file include ancora le
    ' virgolette  finali  (""), le elimina.
    '
    If Right$(File, 1) = Chr$(34) Then File = Left$(File, Len(File) - 1)
    '
    ' Se il file non esiste, visualizza un
    ' messaggio di errore.
    '
    If Dir(File, 6) = "" Then
        Exit Function
    End If
    '
    GetProgramLocation = GetLongFileName(File)
    '
    ' Se il nome del file restituito è "\",
    ' allora l'estensione digitata indica un
    ' file non trovato
    '
    If GetProgramLocation = "\" Then GetProgramLocation = ""
    Exit Function
    '
GetProgram_ErrHandler:
    '
    MsgBox Err.Description & vbCr & vbCr & "(Error #" & Err.Number & ")", ,
"Error in ModGetIconProg: Function GetProgram"
    Err.Raise Err.Number, Err.Source, Err.Description, Err.HelpFile,
Err.HelpContextID
End Function