Accedi con Microsoft
Accedi o crea un account.
Salve,
Seleziona un altro account.
Hai più account
Scegli l'account con cui vuoi accedere.

Excel non ha una funzione predefinita che visualizza i numeri come parole inglesi in un foglio di lavoro, ma è possibile aggiungere questa funzionalità incollando il codice funzione SpellNumber seguente in un modulo VBA (Visual Basic, Applications Edition). Questa funzione consente di convertire gli importi di euro e centesimi in parole con una formula, quindi 22,50 verrebbe letto come Twenty-Two dollari e cinquanta centesimi. Questo può risultare molto utile se si usa Excel come modello per stampare i controlli.

Se si desidera convertire i valori numerici in formato testo senza visualizzarli come parole, usare invece la funzione TESTO .

Nota: Microsoft fornisce esempi di programmazione a titolo puramente illustrativo, senza alcuna garanzia espressa o implicita. Ciò include, a titolo esemplificativo e non esaustivo, le garanzie implicite di commerciabilità o idoneità a uno scopo particolare. Questo articolo presuppone che si abbia familiarità con il linguaggio di programmazione VBA e con gli strumenti usati per creare ed eseguire il debug di routine. I tecnici dell'assistenza Microsoft possono aiutare a spiegare la funzionalità di una particolare procedura. Tuttavia, non modificheranno questi esempi per fornire funzionalità aggiunte o creare procedure per soddisfare i requisiti specifici.

Creare la funzione SpellNumber per convertire i numeri in parole

  1. Usare la scelta rapida da tastiera 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 funzione definita dall'utente, questo codice automatizza l'attività di conversione dei numeri in 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. La funzione SpellNumber è ora pronta per l'uso.

    Nota: Questa funzione funziona solo per la cartella di lavoro corrente. Per usare questa funzione in un'altra cartella di lavoro, è necessario ripetere i passaggi 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 da convertire. È anche possibile digitare manualmente il valore come =SpellNumber(22,50).

  2. Premere INVIO per confermare la formula.

Inizio pagina

Salvare la cartella di lavoro con funzione SpellNumber

Non è possibile salvare una cartella di lavoro con funzioni macro nel formato di cartella di lavoro standard senza macro (.xlsx). Se si fa clic su File > Salva. Viene visualizzata una finestra di dialogo Progetto VB. Fare clic su No.

Nella finestra di dialogo Progetto VB fare clic su No.

È possibile salvare il file come cartella di lavoro di Excel Macro-Enabled (xlsm) per mantenere il file nel formato corrente.

  1. Fare clic su File > Salva con nome.

  2. Fare clic sul menu a discesa Tipo file e selezionare Excel Macro-Enabled cartella di lavoro.

  3. Fare clic su Salva.

Inizio pagina

Vedere anche

Funzione TESTO

Serve aiuto?

Vuoi altre opzioni?

Esplorare i vantaggi dell'abbonamento e i corsi di formazione, scoprire come proteggere il dispositivo e molto altro ancora.

Le community aiutano a porre e a rispondere alle domande, a fornire feedback e ad ascoltare gli esperti con approfondite conoscenze.

Queste informazioni sono risultate utili?

Come valuti la qualità della lingua?
Cosa ha influito sulla tua esperienza?
Premendo Inviare, il tuo feedback verrà usato per migliorare i prodotti e i servizi Microsoft. L'amministratore IT potrà raccogliere questi dati. Informativa sulla privacy.

Grazie per il feedback!

×