Articolo wiki
  • Questo articolo wiki è bloccato
Applicabile a 771 visualizzazioni

Excel - 3 UDF per estrarre numeri, vocali, consonanti da una stringa - VBA

Riepilogo

Livello tecnico: Conoscenza di base di Visual Basic for Applications Si applica a: Excel - Word (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.

 

Di seguito tre semplici UDF (User Defined Function - Funzioni Definite dall'Utente) per estrarre numeri, vocali o consonati da una stringa:

 

Public Function fSoloNumeri( _
    ByVal sTesto As String) As String
   
    Dim lng As Long
   
    fSoloNumeri = ""
   
    For lng = 1 To Len(sTesto)
        If Mid(sTesto, lng, 1) _
            Like "[1234567890]" Then
            fSoloNumeri = _
                fSoloNumeri & Mid(sTesto, lng, 1)
        End If
    Next
       
End Function

 

Public Function fSoloVocali( _
    ByVal sTesto As String) As String
   
    Dim lng As Long
   
    fSoloVocali = ""
   
    For lng = 1 To Len(sTesto)
        If UCase(Mid(sTesto, lng, 1)) _
            Like "[AEIOU]" Then
            fSoloVocali = _
                fSoloVocali & Mid(sTesto, lng, 1)
        End If
    Next
       
End Function

 

Public Function fSoloConsonanti( _
    ByVal sTesto As String) As String
   
    Dim lng As Long
   
    fSoloConsonanti = ""
   
    For lng = 1 To Len(sTesto)
        If UCase(Mid(sTesto, lng, 1)) _
            Like "[QWRTYPSDFGHJKLZXCVBNM]" Then
            fSoloConsonanti = _
                fSoloConsonanti & Mid(sTesto, lng, 1)
        End If
    Next
       
End Function

 

Il codice va copia/incollato in un modulo standard e può essere utilizzato da una Sub o direttamente nelle celle dei fogli di Excel.

 

 

 

Figura 1: Esempio di utilizzo della UDF fSoloNumeri nella cella B1 del foglio. La funzione estrae i numeri della stringa contenuta nella cella A1.

 

 

 

Figura 2: Esempio di utilizzo della UDF fSoloConsonanti. La funzione estrae le consonanti dalla stringa passata come argomento.

 

 

  • La funzione fSoloNumeri restituisce una stringa, non un numero. Questo per evitare che se il primo valore è uno zero, venga eliminato in determinate situazioni.
  • Ricordo che nella lingua inglese la Y è una vocale.
  • La funzione fSoloVocali non considera le vocali accentate

Non dovrebbe essere difficile modificare queste/creare nuove macro personalizzate nelle esclusioni

Nel sito maurogsc.eu trovate il file utilizzato per l'esempio:

 

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)




Commenti (0)

avanzamento