Türkçe Karakterleri Değiştir - Microsoft Excel


Fonksiyon Türkçe karakterleri tespit ediyor ve en çok benzeyen harflerle değiştiriliyor. Böylelikle İngilizce alfabeye uygun bir yazım düzeni ortaya çıkıyor.

Kod


Option Explicit

Public Function TurkceKarakterDegistir(hucre As Range) As String
    Dim diziE As Variant
    Dim diziY As Variant
    Dim i     As Long
    Dim sonuc As String
    
    diziE = Array("İ", "Ç", "Ö", "Ü", "Ş", "Ğ", "ı", "ç", "ö", "ü", "ş", "ğ")
    diziY = Array("I", "C", "O", "U", "S", "G", "i", "c", "o", "u", "s", "g")
    
    sonuc = hucre.Value
    
    For i = LBound(diziE) To UBound(diziE)
      sonuc = Replace(sonuc, diziE(i), diziY(i))
    Next
    
    TurkceKarakterDegistir = sonuc
End Function

Kod (Açıklamalı)


Option Explicit

'--------------------------------------------------
'Tek parametreden oluşan ve string değer
'döndüren bir fonksiyon tanımladık.
'--------------------------------------------------
Public Function TurkceKarakterDegistir(hucre As Range) As String
    
    '--------------------------------------------------
    'Değiştirilecek karakterlerin listelendiği
    'bir dizi değişkeni. Sonundaki E harfi "eski"
    'anlamına geliyor.
    '--------------------------------------------------
    Dim diziE As Variant
    
    '--------------------------------------------------
    'Değiştirilecek karakterlerin yerine konacak
    'karakterleri bu değişkende listeliyoruz.
    'Sonundaki Y harfi "yeni" anlamına geliyor.
    '--------------------------------------------------
    Dim diziY As Variant
    
    '--------------------------------------------------
    'Döngü için lazım olacak.
    '--------------------------------------------------
    Dim i     As Long
    
    '--------------------------------------------------
    'Bu değişkeni de karakter değişimi
    'işlemlerinde depo gibi kullanacağız.
    '--------------------------------------------------
    Dim sonuc As String
    
    '--------------------------------------------------
    'Değiştirilecek karakterleri veri olarak girdik.
    '--------------------------------------------------
    diziE = Array("İ", "Ç", "Ö", "Ü", "Ş", "Ğ", "ı", "ç", "ö", "ü", "ş", "ğ")
    
    '--------------------------------------------------
    'Değiştirileceklerin yerine konacak karakterleri veri olarak girdik.
    '--------------------------------------------------
    diziY = Array("I", "C", "O", "U", "S", "G", "i", "c", "o", "u", "s", "g")
    
    '--------------------------------------------------
    'Şimdi metnin ilk halini sonuç değişkenine aktardık.
    'Ham halini değiştire değiştire ilerleyeceğiz.
    '--------------------------------------------------
    sonuc = hucre.Value
    
    '--------------------------------------------------
    'Burada döngünün olayı şu: Eski değerlerin tümünü
    'diziE değişkeni aracılığıyla kontrol edeceğiz.
    'Eğer bu dizideki karakterlerden birine denk
    'gelirse acımadan değiştirecek.
    '--------------------------------------------------
    For i = LBound(diziE) To UBound(diziE)
    
        '--------------------------------------------------
        'Burada belki neden iki döngü kullanmadığımızı
        'düşünüyor olabilirsiniz. Cevap: Gerek yok.
        'Çünkü Replace üyesi siz değiştirilecek ve yerine
        'konacak karakterleri verdiğinizde varsayılan
        'olarak baştan sona tüm metni kontrol eder ve
        'bulursa hepsini değiştirir.
        '
        'Biz de eski değerlerin olduğu dizide sırasıyla
        'tüm karakterler için değiştirme işlemini yapmasını
        'sağlıyoruz.
        '--------------------------------------------------
        sonuc = Replace(sonuc, diziE(i), diziY(i))
    Next
    
    '--------------------------------------------------
    'Sonucu yazdırıyoruz.
    '--------------------------------------------------
    TurkceKarakterDegistir = sonuc
End Function

Etiketler
microsoft excel açıklamalı içerik microsoft excel vba