Excel - Conoscere la versione di Excel - VBA

Riepilogo
Livello tecnico: Conoscenza di base di Visual Basic for Applications Si applica a: Excel (2000/2002/2003/2007/2010/2013)
Dettagli

NOTA. Gli esempi ed il codice sono forniti *così come sono* e l’autore declina ogni responsabilità per un loro uso scorretto. Utilizzate gli esempi forniti o file di prova per i vostri test. La correzione delle eccezioni (errori) e il controllo del tipo di dati inserito è solo parziale. I file vogliono essere un semplice esempio che illustra come sia possibile automatizzare Excel e sono forniti solo a scopo dimostrativo.

 

Situazione.

Vogliamo conoscere quale versione di Excel è in uso su quella macchina e nel caso siano installate più versioni, quale sia quella attiva. 

 

Questo codice, da copia/incollare in un modulo standard, restituisce la versione più recente installata sulla macchina o la versione di default:

 

Public Sub m_1()

    Dim xlApp As New Excel.Application

    Select Case Val(Mid(xlApp.Version, 1, _
        InStr(1, xlApp.Version, ".") - 1))
        Case 15
            MsgBox "Excel 2013"
        Case 14
            MsgBox "Excel 2010"
        Case 12
            MsgBox "Excel 2007"
        Case 11
            MsgBox "Excel 2003"
        Case 10
            MsgBox "Excel 2002(XP)"
        Case 9
            MsgBox "Excel 2000"
    End Select
   
    Set xlApp = Nothing

End Sub

 

Questo codice, da copia/incollare in un modulo standard, restituisce la versione di Excel nella quale è contenuto il codice della macro e che nel caso di più versioni installate sulla stessa macchina, non sempre corrisponde alla versione di default:

 

Public Sub m_2()

    Select Case Val(Mid(Application.Version, 1, _
        InStr(1, Application.Version, ".") - 1))
        Case 15
            MsgBox "Excel 2013"
        Case 14
            MsgBox "Excel 2010"
        Case 12
            MsgBox "Excel 2007"
        Case 11
            MsgBox "Excel 2003"
        Case 10
            MsgBox "Excel 2002(XP)"
        Case 9
            MsgBox "Excel 2000"
    End Select

End Sub

 

Questa funzione da copia/incollare in un modulo standard, restituisce il numero della versione attiva al momento della chiamata e può essere utilizzata anche in Excel lato celle:

 

Public Function f() As Long
    With Application
        f = Val(Mid(.Version, 1, _
            InStr(1, .Version, ".") - 1))
    End With
End Function

 

 

 

Figura 1: Esempio di utilizzo della funzione f() nella cella D1 di un foglio di Excel. La versione 15 di Excel è la 2013.

 

 

 

 

Figura 2: Esempio di chiamata della funzione f() da una Sub e relativa MsgBox con il risultato. La versione 15 di Excel è la 2013.

 

 

Link per chi è alle prime armi con il vb di Excel:

 

 

NOTA. Excel non dispone nativamente di procedure assolutamente sicure per impedire la visualizzazione e la modifica del codice vb e/o per la protezione dei fogli. E’ una cosa da tenere sempre presente quando si distribuiscono file con contenuti ritenuti delicati. Ricordate anche che è possibile lanciare il file di Excel senza che vengano eseguite le macro.


Risorse.

 


 Avvio Pulito di Windows
(courtesy of Microsoft MVP Franco Leuzzi)


Computer infettato da malware (courtesy of Microsoft MVP Vincenzo Di Russo)



 

 

Informazioni articolo forum


Ultimo aggiornamento ottobre 15, 2018 Visualizzazioni 1.751 Si applica a: