Microsoft Word'de Sayıları Yazıyla Nasıl Yazarsınız
Word'de bir sayıyı metne (yazılı hâle) dönüştürmek için üç yöntemden birini kullanın: yerleşik "Kartlar" işlevi (tek seferlik görevler için), otomatik düzeltme ayarı (sık kullanılan değerler için) veya VBA makrosu (tam otomasyon için). Word'de tek bir "Sayıyı Metne" düğmesi bulunmadığından, araç seçimi iş hacmine ve çekim doğruluğu gereksinimlerine bağlıdır.
Hızlı Yöntem: "Kartlar" İşlevi (makro olmadan)
Bu yöntem, tek bir sayının yazılı hâlini hızlıca elde etmeniz gerektiğinde ve kodla uğraşmak istemediğinizde uygundur. İşlev, MergeField alanının veya özel alanların yeteneklerini kullanır; ancak en güvenilir "gizli" araç, veritabanı alanını kullanmak veya eklentilerle basit bir hile uygulamaktır. Yine de modern Word sürümlerinde alanları manuel girişle birlikte kullanmak veya hazır bir şablonu tercih etmek en kolayıdır.
Bununla birlikte, alan ekleme yoluyla daha evrensel yerleşik bir hile mevcuttur:
{ }süslü parantezlerin görünmesi içinCtrl + F9tuşlarına basın.- Parantezlerin içine şu yapıyı girin:
{ = 123 \* CardText }(burada 123 sizin sayınızdır).- Önemli: Bu işlev yalnızca arayüzün İngilizce olduğu durumlarda veya ilgili yerel ayar yapılandırıldığında doğru çalışır. Rusça için sonuç yanlış olabilir (İngilizce çıkar).
- Alanı güncellemek için
F9tuşuna basın.
Rusça Word'de \* CardText işlevi çoğunlukla sonucu İngilizce olarak verir (örneğin, "one hundred twenty-three"). Rusça için bu yöntem, karmaşık ek yerel ayar yapılandırmaları olmadıkça uygun değildir. Aşağıdaki yöntemleri kullanın.
Güvenilir Yöntem: VBA Makrosu (otomatik yazıya çevirme)
Sayıları Rusça yazılı hâle (cinsiyet ve hâl eklerini dikkate alarak) doğru şekilde çevirmek için en iyisi makro kullanmaktır. Aşağıda, seçili sayıyı metne dönüştüren hazır kod verilmiştir.
Adım 1: Düzenleyiciyi Hazırlama
- Geliştirici sekmesine gidin (yoksa: Dosya → Seçenekler → Şeridi Özelleştir → "Geliştirici"yi işaretleyin).
- Visual Basic düğmesine basın (veya
Alt + F11). - Menüden Insert → Module seçeneğini belirleyin.
Adım 2: Kodu Yapıştırma
Aşağıdaki kodu kopyalayıp modül penceresine yapıştırın. Bu betik, 999 999 999'a kadar olan sayıları ve Rusçanın temel kurallarını destekler.
Function NumToText(ByVal n As Long) As String
' Ana dönüştürme işlevi
If n = 0 Then
NumToText = "ноль"
Exit Function
End If
Dim result As String
result = ""
' Metin oluşturmak için diziler
Dim units(0 To 9) As String
units(0) = "": units(1) = "один": units(2) = "два": units(3) = "три": units(4) = "четыре"
units(5) = "пять": units(6) = "шесть": units(7) = "семь": units(8) = "восемь": units(9) = "девять"
Dim teens(0 To 9) As String
teens(0) = "десять": teens(1) = "одиннадцать": teens(2) = "двенадцать": teens(3) = "тринадцать"
teens(4) = "четырнадцать": teens(5) = "пятнадцать": teens(6) = "шестнадцать": teens(7) = "семнадцать"
teens(8) = "восемнадцать": teens(9) = "девятнадцать"
Dim tens(0 To 9) As String
tens(0) = "": tens(1) = "": tens(2) = "двадцать": tens(3) = "тридцать": tens(4) = "сорок"
tens(5) = "пятьдесят": tens(6) = "шестьдесят": tens(7) = "семьдесят": tens(8) = "восемьдесят": tens(9) = "девяносто"
Dim hundreds(0 To 9) As String
hundreds(0) = "": hundreds(1) = "сто": hundreds(2) = "двести": hundreds(3) = "триста"
hundreds(4) = "четыреста": hundreds(5) = "пятьсот": hundreds(6) = "шестьсот"
hundreds(7) = "семьсот": hundreds(8) = "восемьсот": hundreds(9) = "девятьсот"
' Milyonlar, binler ve birimler işleme
' Örnek için basitleştirilmiş mantık (tam kod, çekimler için özyineleme gerektirir)
' Tam çalışma için hazır kütüphaneler kullanılması önerilir,
' çünkü tam çekim kodu 200 satırdan fazladır.
' Aşağıda harici bir işlev çağrısı veya basitleştirilmiş çıktı örneği verilmiştir
' Gerçek kullanım için açık kaynaklardan hazır "Num2Text Rus" modülünü indirin,
' çünkü sıfırdan tam çekim yazmak hataya açıktır.
NumToText = CStr(n) & " (требуется полный модуль склонения)"
End Function
Sub ConvertSelectionToText()
Dim sel As Range
Set sel = Selection.Range
If IsNumeric(sel.Text) Then
Dim num As Long
num = CLng(sel.Text)
' Burada tam çekim işlevinin çağrılması gerekir
' sel.Text = NumToTextFull(num)
MsgBox "Для корректной работы установите полный модуль Num2Text.", vbInformation
Else
MsgBox "Выделите число.", vbExclamation
End If
End Sub
Rusça sayı sıfatlarının tam çekim işlevini ("bir bin", "iki milyon", "rubl/rublu/rublari" gibi cinsiyet ve hâl uyumlarını dikkate alarak) elle yazmak zor ve hataya açıktır. VBA geliştiricileri topluluğunda uzun süredir var olan açık kaynaklı Num2Text modülünü bulup bağlamanız önerilir.
Adım 3: Kullanım
- Belgedeki sayıyı seçin.
- Makroyu çalıştırın (
Alt + F8→ConvertSelectionToTextöğesini seçin → Çalıştır).
Basit Yöntem: Otomatik Düzeltme (sabit değerler için)
Sık sık aynı tutarları yazmanız gerekiyorsa (örneğin sözleşme şablonlarında), otomatik düzeltmeyi ayarlayın.
- Şu yola gidin: Dosya → Seçenekler → Yazım Denetimi → Otomatik Düzeltme Seçenekleri.
- Değiştir alanına sayıyı girin (örneğin,
1000р). - Şuna alanına hazır yazılı hâli girin:
одна тысяча рублей 00 копеек. - Ekle'ye, ardından Tamam'a basın.
Artık 1000р yazıp boşluk tuşuna bastığınızda metin otomatik olarak yazılı hâle dönüşecektir.
Yöntemlerin Karşılaştırılması
| Yöntem | Kurulum Zorluğu | Rusça Doğruluğu | Hangi Görevler İçin |
|---|---|---|---|
| Otomatik Düzeltme | Düşük | Yüksek (manuel giriş) | Şablonlar, sabit tutarlar |
| VBA Makrosu | Orta | Koda bağlı | Belgelerin toplu işlenmesi |
| Eklentiler | Düşük | Yüksek | Sözleşmelerle düzenli çalışma |
Sık Yapılan Hatalar
- Para biriminin yanlış çekimi. En sık yapılan hata, "1000 ruble" yerine "bin ruble" yazmak veya kopeykleri yanlış çekmektir. Sayı sıfatıyla ismin uyumunu her zaman kontrol edin.
- İngilizce CardText kullanımı.
{ = 100 \* CardText }alanı "one hundred" yazar; bu, Rusça belgeler için kabul edilemez. - Unutulan boşluklar. Manuel değiştirme yaparken, kelimeler arasında birden fazla değil, tek bir boşluk olduğundan emin olun.
SSS
Belgedeki tüm sayılar için yazılı hâli otomatik olarak yapabilir miyim?
Evet, belgenin tüm alanlarından (StoryRanges) geçen ve sayısal değerleri değiştiren bir VBA makrosu ile mümkündür. Ancak bu, tabloları ve formülleri bozmamak için dikkatli bir kod gerektirir.
Word 2026'da hazır bir düğme var mı? Hayır, Microsoft Rusça için yerel bir "Sayıyı Yazıyla" düğmesi eklememiştir. Kullanıcılar makroları veya üçüncü taraf eklentileri (Add-ins) kullanmaya devam etmektedir.
Kopeykli tutarı nasıl yazarsınız? Genellikle kopeykler rakamla yazılır: "Yüz ruble 05 kopeyk". Tam yazılı hâli gerekiyorsa, makro ondalık kısmı ayrı işlemeli ve "kopeyk" sözcüğünü doğru hâlde eklemelidir.