Makale numarası: 213360 - Son Gözden Geçirme: 20 Kasım 2007 Salı - Gözden geçirme: 7.0

Excel'de bir sayısal değeri İngilizce sözcük karşılığına dönüştürme

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

™zet

Bu makalede, bir Microsoft Excel çalışma sayfası hücresindeki sayısal bir değeri karşılık gelen İngilizce sözcüğe dönüştürmek için kullanabileceğiniz örnek Microsoft Visual Basic for Applications işlevleri yer almaktadır.

Daha fazla bilgi

Microsoft, programlama örneklerini yalnızca gösterim amacıyla sağlar; örtülü veya açık garanti vermez. Buna satılabilirlik veya belirli bir amaca uygunluk zımni garantileri de dahildir, ancak bunlarla sınırlı değildir. Bu makale, gösterilen programlama dilini ve yordamları oluşturmak ve hata ayıklamak amacıyla kullanılan araçları kullanmayı bildiğinizi varsayar. Microsoft destek mühendisleri, belirli bir yordamın işlevselliğinin açıklanmasına yardımcı olabilir. Ancak gereksinimlerinizi karşılamaya yönelik olarak ek işlevsellik sağlamak veya yordamlar geliştirmek amacıyla bu örnekleri değiştirmezler.

SpellNumber adlı örnek işlevi oluşturma

  1. Microsoft Excel'i başlatın.
  2. Visual Basic Düzenleyicisi'ni başlatmak için ALT+F11 tuşlarına basın.
  3. Ekle menüsünde Modül'ü tıklatın.
  4. Modül sayfasına aşağıdaki kodu yazın.
    Option Explicit
    'Ana İşlevi
    Function SpellNumber(ByVal MyNumber)
        Dim Dollars, Cents, Temp
        Dim DecimalPlace, Count
        ReDim Place(9) As String
        Place(2) = " Bin "
        Place(3) = " Milyon "
        Place(4) = " Milyar "
        Place(5) = " Trilyon "
        ' Miktarın dize olarak gösterimi.
        MyNumber = Trim(Str(MyNumber))
        ' Yoksa, ondalık konumunun 0 olarak ayarlanması.
        DecimalPlace = InStr(MyNumber, ".")
        ' Sent değerlerini dönüştür ve MyNumber değerini ABD doları olarak ayarla.
        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 = "ABD Doları Değil"
            Case "Bir"
                Dollars = "Bir ABD Doları"
             Case Else
                Dollars = Dollars & " Dolar"
        End Select
        Select Case Cents
            Case ""
                Cents = ", 0 Sent"
            Case "Bir"
                Cents = ", Bir Sent"
                  Case Else
                Cents = " ve " & Cents & " Sent"
        End Select
        SpellNumber = Dollars & Cents
    End Function
          
    ' 100-999 arasındaki bir sayıyı metne dönüştürür 
    Function GetHundreds(ByVal MyNumber)
        Dim Result As String
        If Val(MyNumber) = 0 Then Exit Function
        MyNumber = Right("000" & MyNumber, 3)
        ' Yüzler basamağını dönüştürür.
        If Mid(MyNumber, 1, 1) <> "0" Then
            Result = GetDigit(Mid(MyNumber, 1, 1)) & " Yüz "
        End If
        ' Onlar ve birler basamaklarını dönüştürür.
        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
          
    ' 10-99 arasındaki bir sayıyı metne dönüştürür. 
    Function GetTens(TensText)
        Dim Result As String
        Result = ""           ' Geçici işlev değerini yoksayın.
        If Val(Left(TensText, 1)) = 1 Then   ' Değer 10-19 arasındaysa...
            Select Case Val(TensText)
                Case 10: Result = "On"
                Case 11: Result = "On bir"
                Case 12: Result = "On iki"
                Case 13: Result = "On üç"
                Case 14: Result = "On dört"
                Case 15: Result = "On beş"
                Case 16: Result = "On altı"
                Case 17: Result = "On yedi"
                Case 18: Result = "On sekiz"
                Case 19: Result = "On dokuz"
                Case Else
            End Select
        Else                                 ' Değer 20-99 arasındaysa...
            Select Case Val(Left(TensText, 1))
                Case 2: Result = "Yirmi "
                Case 3: Result = "Otuz "
                Case 4: Result = "Kırk "
                Case 5: Result = "Elli "
                Case 6: Result = "Altmış "
                Case 7: Result = "Yetmiş "
                Case 8: Result = "Seksen "
                Case 9: Result = "Doksan "
                Case Else
            End Select
            Result = Result & GetDigit _
                (Right(TensText, 1))  ' Birler basamağını al.
        End If
        GetTens = Result
    End Function
         
    ' 1-9 arasındaki bir sayıyı metne dönüştürür. 
    Function GetDigit(Digit)
        Select Case Val(Digit)
            Case 1: GetDigit = "Bir"
            Case 2: GetDigit = "İki"
            Case 3: GetDigit = "Üç"
            Case 4: GetDigit = "Dört"
            Case 5: GetDigit = "Beş"
            Case 6: GetDigit = "Altı"
            Case 7: GetDigit = "Yedi"
            Case 8: GetDigit = "Sekiz"
            Case 9: GetDigit = "Dokuz"
            Case Else: GetDigit = ""
        End Select
    End Function
    					

SpellNumber örnek işlevini kullanma

Örnek işlevleri kullanarak bir sayıyı yazılı metne dönüştürmek için, aşağıdaki örneklerde gösterilen yöntemlerden birini kullanın:

Yöntem 1: Doğrudan Giriş

Bir hücreye aşağıdaki formülü girerek 32,50 değerini "Otuz İki Dolar ve Elli Sent" metnine dönüştürebilirsiniz:
=SpellNumber(32,50)

Yöntem 2: Hücre başvurusu

Çalışma kitabındaki diğer hücrelere başvurabilirsiniz. Örneğin, A1 hücresine 32,50 sayısını girin ve aşağıdaki formülü başka bir hücreye yazın:
=SpellNumber(A1)

Yöntem 3: İşlev Yapıştır veya İşlev Ekle

Excel 2000 ve Excel 2002'deki İşlev Yapıştır komutunu ya da Excel 2003'teki İşlev Ekle komutunu kullanarak bir çalışma sayfasına özel işlev girebilirsiniz.

Excel 2000 ve Excel 2002

İşlev Yapıştır komutunu kullanmak için şu adımları izleyin:
  1. İstediğiniz hücreyi seçin.
  2. Standart araç çubuğunda İşlev Yapıştır'ı tıklatın.
  3. İşlev kategorisi altında Kullanıcı Tanımlı'yı tıklatın.
  4. İşlev adı altında, SpellNumber işlevini ve sonra da Tamam'ı tıklatın.
  5. İstediğiniz sayıyı veya hücre başvurusunu girip Tamam'ı tıklatın.
  6. Son'u tıklatın.

Excel 2003

İşlev Ekle komutunu kullanmak için şu adımları izleyin:
  1. İstediğiniz hücreyi seçin.
  2. Standart araç çubuğunda İşlev Ekle'yi tıklatın.
  3. Veya bir kategori seçin altında Kullanıcı Tanımlı'yı tıklatın.
  4. İşlev seçin listesinde, SpellNumber işlevini ve sonra da Tamam'ı tıklatın.
  5. İstediğiniz sayıyı veya hücre başvurusunu girip Tamam'ı tıklatın.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
Anahtar Kelimeler: 
kbhowto kbprogramming kbdtacode KB213360