Convertire i numeri in parole

Nota: Riteniamo importante fornire il contenuto della Guida più recente non appena possibile, nella lingua dell'utente. Questa pagina è stata tradotta automaticamente e potrebbe contenere errori di grammatica o imprecisioni. L'intento è quello di rendere fruibile il contenuto. Nella parte inferiore della pagina è possibile indicare se le informazioni sono risultate utili. Questo è l'articolo in lingua inglese per riferimento.

Excel non è disponibile una funzione predefinita che visualizza i numeri come le parole inglesi in un foglio di lavoro, ma è possibile aggiungere questa funzionalità incollare il codice di funzione SpellNumber seguente in un modulo VBA (Visual Basic, Applications Edition). Questa funzione consente di convertire gli importi di valuta e centesimi in parole con una formula in modo da leggere 22,50 come due venti euro e cinquanta centesimi. Può essere molto utile se si usa Excel come modello per la stampa di controlli.

Se si desidera convertire valori numerici in formato testo senza che vengano visualizzate come parole, utilizzare la funzione testo .

Nota: Microsoft offre esempi di programmazione per illustrazione solo, senza garanzia espressa o implicita. Include, ma non è limitata alle garanzie di commerciabilità o idoneità per uno scopo specifico. In questo articolo si presuppone che si ha familiarità con il linguaggio di programmazione VBA e gli strumenti utilizzati per creare ed eseguire il debug di procedure. Tecnici del supporto Microsoft consentono di spiegare la funzionalità di una particolare procedura. Tuttavia, in non a modificare questi esempi per fornire funzionalità aggiuntive o creare procedure in base alle specifiche esigenze.

Creare la funzione SpellNumber per convertire i numeri in parole

  1. Usare il tasto di scelta rapida Alt + F11 per aprire Visual Basic Editor (VBE).

    Nota: È anche possibile accedere a Visual Basic Editor visualizzando la scheda Sviluppo nella barra multifunzione.

  2. Fare clic sulla scheda Inserisci e fare clic su Modulo.

    Scegliere Modulo dal menu Inserisci.
  3. Copiare le righe di codice seguenti.

    Nota: Noto come una Funzione definita dall'utente (FDU), questo codice consente di automatizzare le attività di conversione dei numeri al testo in tutto il foglio di lavoro.

    Option Explicit
    
    'Main Function
    
    Function SpellNumber(ByVal MyNumber)
    
    Dim Dollars, Cents, Temp
    
    Dim DecimalPlace, Count
    
    ReDim Place(9) As String
    
    Place(2) = " Thousand "
    
    Place(3) = " Million "
    
    Place(4) = " Billion "
    
    Place(5) = " Trillion "
    
    ' String representation of amount.
    
    MyNumber = Trim(Str(MyNumber))
    
    ' Position of decimal place 0 if none.
    
    DecimalPlace = InStr(MyNumber, ".")
    
    ' Convert cents and set MyNumber to dollar amount.
    
    If DecimalPlace > 0 Then
    
    Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ "00", 2))
    
    MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    
    End If
    
    Count = 1
    
    Do While MyNumber <> ""
    
    Temp = GetHundreds(Right(MyNumber, 3))
    
    If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
    
    If Len(MyNumber) > 3 Then
    
    MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    
    Else
    
    MyNumber = ""
    
    End If
    
    Count = Count + 1
    
    Loop
    
    Select Case Dollars
    
    Case ""
    
    Dollars = "No Dollars"
    
    Case "One"
    
    Dollars = "One Dollar"
    
    Case Else
    
    Dollars = Dollars & " Dollars"
    
    End Select
    
    Select Case Cents
    
    Case ""
    
    Cents = " and No Cents"
    
    Case "One"
    
    Cents = " and One Cent"
    
    Case Else
    
    Cents = " and " & Cents & " Cents"
    
    End Select
    
    SpellNumber = Dollars & Cents
    
    End Function
    
    
    ' Converts a number from 100-999 into text
    
    Function GetHundreds(ByVal MyNumber)
    
    Dim Result As String
    
    If Val(MyNumber) = 0 Then Exit Function
    
    MyNumber = Right("000" & MyNumber, 3)
    
    ' Convert the hundreds place.
    
    If Mid(MyNumber, 1, 1) <> "0" Then
    
    Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
    
    End If
    
    ' Convert the tens and ones place.
    
    If Mid(MyNumber, 2, 1) <> "0" Then
    
    Result = Result & GetTens(Mid(MyNumber, 2))
    
    Else
    
    Result = Result & GetDigit(Mid(MyNumber, 3))
    
    End If
    
    GetHundreds = Result
    
    End Function
    
    
    ' Converts a number from 10 to 99 into text.
    
    
    Function GetTens(TensText)
    
    Dim Result As String
    
    Result = "" ' Null out the temporary function value.
    
    If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...
    
    Select Case Val(TensText)
    
    Case 10: Result = "Ten"
    
    Case 11: Result = "Eleven"
    
    Case 12: Result = "Twelve"
    
    Case 13: Result = "Thirteen"
    
    Case 14: Result = "Fourteen"
    
    Case 15: Result = "Fifteen"
    
    Case 16: Result = "Sixteen"
    
    Case 17: Result = "Seventeen"
    
    Case 18: Result = "Eighteen"
    
    Case 19: Result = "Nineteen"
    
    Case Else
    
    End Select
    
    Else ' If value between 20-99...
    
    Select Case Val(Left(TensText, 1))
    
    Case 2: Result = "Twenty "
    
    Case 3: Result = "Thirty "
    
    Case 4: Result = "Forty "
    
    Case 5: Result = "Fifty "
    
    Case 6: Result = "Sixty "
    
    Case 7: Result = "Seventy "
    
    Case 8: Result = "Eighty "
    
    Case 9: Result = "Ninety "
    
    Case Else
    
    End Select
    
    Result = Result & GetDigit _
    
    (Right(TensText, 1)) ' Retrieve ones place.
    
    End If
    
    GetTens = Result
    
    End Function
    
    
    ' Converts a number from 1 to 9 into text.
    
    Function GetDigit(Digit)
    
    Select Case Val(Digit)
    
    Case 1: GetDigit = "One"
    
    Case 2: GetDigit = "Two"
    
    Case 3: GetDigit = "Three"
    
    Case 4: GetDigit = "Four"
    
    Case 5: GetDigit = "Five"
    
    Case 6: GetDigit = "Six"
    
    Case 7: GetDigit = "Seven"
    
    Case 8: GetDigit = "Eight"
    
    Case 9: GetDigit = "Nine"
    
    Case Else: GetDigit = ""
    
    End Select
    
    End Function
  4. Incollare le righe di codice nella casella Modulo1 (codice).

    Codice incollato nella casella Modulo1 (codice).
  5. Premere Alt + Q per tornare a Excel. È ora possibile utilizzare la funzione SpellNumber.

    Nota: Questa funzione è applicabile solo per la cartella di lavoro corrente. Per utilizzare questa funzione in un'altra cartella di lavoro, è necessario ripetere la procedura per copiare e incollare il codice nella cartella di lavoro.

Inizio pagina

Usare la funzione SpellNumber in singole celle

  1. Digitare la formula = SpellNumber (A1) nella cella in cui si vuole visualizzare un numero scritto, dove A1 è la cella contenente il numero che si desidera convertire. È inoltre possibile digitare manualmente il valore ad esempio = SpellNumber(22.50).

  2. Premere INVIO per confermare la formula.

Inizio pagina

Salvare la cartella di lavoro con funzione SpellNumber

Excel non è possibile salvare una cartella di lavoro con le funzioni macro nel formato standard cartella di lavoro senza macro (. xlsx). Se si fa clic su File > Salva. Viene visualizzata una finestra di dialogo progetto Visual Basic. Fare clic su No.

Nella finestra di dialogo Progetto VB fare clic su No.

È possibile salvare il file come una Cartella di lavoro di attivazione macro di Excel (xlsm) per mantenere il file nel formato attuale.

  1. Fare clic su File > Salva con nome.

  2. Fare clic sul menu a discesa tipo file selezionare Formato cartella di lavoro.

  3. Fare clic su Salva.

Inizio pagina

Vedere anche

TESTO

Amplia le tue competenze su Office
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per il feedback!

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×