Outlook Makro - Türkçe karakter değiştime

tropique

Altın Üye
Katılım
15 Kasım 2012
Mesajlar
80
Excel Vers. ve Dili
Excel 365 English,
Altın Üyelik Bitiş Tarihi
12-06-2025
Merhaba,

Outlook (2010) için, göndereceğimiz mesajı düzenlerken, makro kullanarak Türkçe (noktalı) karakterleri değiştirmek (ğ,ü,ş,ı,ö,ç) ve tüm mesajı büyük harf yapabilmek için kod önerebilir misiniz? Özetle CTRL+H ile yapılan işlemin kodu nasıldır?

Teşekkürler
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,681
Excel Vers. ve Dili
Excel 2019 Türkçe
Maili, Excel üzerinden mi atacaksanız ?
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,681
Excel Vers. ve Dili
Excel 2019 Türkçe
Outlook içinde ThisOutlookSession kısmına aşağıdaki kodu ekleyin, mail atmak istediğinizde mail body kısmını büyük harfe çevirecektir. Türkçe karakterler için ayrı bir çalışma yapmak gerekecek.
Kod:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Item.Body = VBA.StrConv(Item.Body, vbUpperCase)
End Sub
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,681
Excel Vers. ve Dili
Excel 2019 Türkçe
Koda, Türkçe karakterleri değiştirme özelliği ekledim.
Kod:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    arr = Array("ğ", "ş", "ç", "ı", "ö", "ü", "İ", "Ğ", "Ş", "Ç", "Ö", "Ü")
    arr2 = Array("G", "S", "C", "I", "O", "U", "I", "G", "S", "C", "O", "U")
    a = Item.Body
    For i = 0 To UBound(arr)
        a = Replace(a, arr(i), arr2(i))
    Next
    Item.Body = VBA.StrConv(a, vbUpperCase)
End Sub
 

tropique

Altın Üye
Katılım
15 Kasım 2012
Mesajlar
80
Excel Vers. ve Dili
Excel 365 English,
Altın Üyelik Bitiş Tarihi
12-06-2025
Merhaba,

Yardımınız için teşekkür ederim.

Peki bunu istenilen bir mesajda kullanmak (mesela bir düğmeye atayıp da kullanmak için) için nasıl düzenlemeliyiz. Açıkçası modül içine koymayı denedim ama hata aldım.

Outlook içinde ThisOutlookSession kısmına aşağıdaki kodu ekleyin, mail atmak istediğinizde mail body kısmını büyük harfe çevirecektir. Türkçe karakterler için ayrı bir çalışma yapmak gerekecek.
Kod:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Item.Body = VBA.StrConv(Item.Body, vbUpperCase)
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
41,774
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Buton yerine kullanıcıdan onay alsanız daha kullanışlı olabilir.

Kod:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Onay = MsgBox("Bu maildeki Türkçe karakterleri değiştirmek ister misiniz?", vbExclamation + vbYesNo)
    If Onay = vbNo Then Exit Sub
    arr = Array("ğ", "ş", "ç", "ı", "ö", "ü", "İ", "Ğ", "Ş", "Ç", "Ö", "Ü")
    arr2 = Array("G", "S", "C", "I", "O", "U", "I", "G", "S", "C", "O", "U")
    a = Item.Body
    For i = 0 To UBound(arr)
        a = Replace(a, arr(i), arr2(i))
    Next
    Item.Body = VBA.StrConv(a, vbUpperCase)
End Sub
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,681
Excel Vers. ve Dili
Excel 2019 Türkçe
Korhan üstadımızın düğme ekleme ile ilgili çözümünü paylaşıyorum.
Kod:
Option Explicit

Sub Karakter_Düzelt()
    Dim Uygulama As Object, AktifPencere As Object, Mesaj As Object
    Dim Onay As Byte, Eski_Karakter(), Yeni_Karakter(), Veri As String, X As Byte

    Set Uygulama = CreateObject("Outlook.Application")
    Set AktifPencere = Uygulama.ActiveInspector
    Set Mesaj = AktifPencere.CurrentItem
    
    Onay = MsgBox("Bu maildeki Türkçe karakterleri değiştirmek ister misiniz?", vbExclamation + vbYesNo)
    If Onay = vbNo Then Exit Sub
    
    Eski_Karakter = Array("ğ", "ş", "ç", "ı", "ö", "ü", "i", "Ğ", "Ş", "Ç", "Ö", "Ü")
    Yeni_Karakter = Array("G", "S", "C", "I", "O", "U", "I", "G", "S", "C", "O", "U")

    Veri = Mesaj.Body

    For X = 0 To UBound(Eski_Karakter)
        Veri = Replace(Veri, Eski_Karakter(X), Yeni_Karakter(X))
    Next
    
    Mesaj.Body = VBA.StrConv(Veri, vbUpperCase)
    
    Set Mesaj = Nothing
    Set AktifPencere = Nothing
    Set Uygulama = Nothing
End Sub
Düğme nasıl eklenir ?
Yeni E-Posta butonuna bastıktan sonra ekrana gelen pencerenin menüler bölümünde sağ klik yapıyoruz. Şeridi özelleştir diyerek "Outlook Seçenekler" penceresini açıyoruz. Burada "Yeni Grup" butonuna tıklayarak kendimize yeni bir grup oluşturuyoruz.

Daha sonra "Komutları şuradan seçin" menüsünü kullanarak "Makroları" seçiyoruz. Ekrana size önerdiğim kodun adı gelecektir. O adı tıklayıp "Ekle" butonuna tıklayıp makroyu eklemiş olduğumuz yeni gruba tanımlamış oluyoruz.
 

tropique

Altın Üye
Katılım
15 Kasım 2012
Mesajlar
80
Excel Vers. ve Dili
Excel 365 English,
Altın Üyelik Bitiş Tarihi
12-06-2025
@Hamitcan ve @Korhan Ayhan,

Her iki çözüm öneriniz de çalışmaktadır. İkinize de çok teşekkür ederim, elinize emeğinize sağlık.
 
Üst