Bu yazıda, Microsoft Excel'de VBA kullanarak adres mektup birleştirmenin nasıl otomatikleştirileceğini öğreneceğiz.
Adres Mektup Birleştirme: - Bu, veri bilgilerini metin halinde birleştirmek ve ardından belgeyi yazdırmak için kullanılan kaynaktır. Böyle bir işlemi gerçekleştirmek için Microsoft Word kullanıyoruz.
Basit bir alıştırma ile anlayalım: -
Rapor sayfasında bir mektup biçimimiz var ve mektup ayrıntılarını da değiştirmek istediğimiz VBA üzerinden adres mektup birleştirme uygulamak istiyoruz.
2 yaprağımız var. 1 sayfa, mektup vermek istediğimiz ayrıntıları içeren verileri içerir. İlk verilerde A sütunu Ad'ı, B sütunu sokak adresini, C sütunu şehri, D sütunu bölgesini ve E sütunu ile F sütunu posta postasını içerir. Rapor sayfasında hareket etmek için bir komut düğmesi vardır.
2nd sayfa 2 komut butonlu harf formatına sahip; veri sayfasında hareket etmek için bir düğme ve adres mektup birleştirme için çalışmak için ikinci komut düğmesi
İlk olarak Main Data komut butonunun VBA kodunu yazacağız. Aşağıda verilen adımları izlememiz gerekiyor: -
- İlk önce çalışma sayfasına komut butonunu ekleyeceğiz.
- Geliştirici sekmesine gidin ve ardından Activexcontrol'den Komut düğmesini ekleyin.
- Komut düğmesini “Harf” adıyla yeniden adlandırın ve şimdi aşağıda belirtilen makroyu atayın: -
Özel Alt Main_data_Click()
Çalışma Sayfaları("Rapor").Etkinleştir
Aralık("A19").Göster
Alt Bitiş
Şimdi Rapor sayfasına ikinci komut butonunu ekleyeceğiz ve makroyu ilk sayfada hareket edecek şekilde atayacağız. Aşağıda verilen adımları izlememiz gerekiyor: -
- Komut düğmesini “Veri” adıyla yeniden adlandırın ve aşağıda belirtilen makroyu atayın: -
Özel Alt KomutDüğmesi2_Click()
Worksheets("Main_Data").Etkinleştir
Aralık("A1").Göster
Alt Bitiş
Şimdi aşağıdaki adımları izleyerek adres mektup birleştirme için ana kodu yazacağız: -
Komut düğmesini ekleyin ve “Mektup Baskı” olarak yeniden adlandırın ve ardından aşağıda belirtilen kodu atayın: -
Özel Alt KomutDüğmesi1_Click()
Dim StartrowAs Integer, lastrow As Integer
MsgAs Dizesini Karartın
Dim TotalrecordsAs String
Dim name As String, Street_AddressAs String, şehir As String, bölge As String, ülke As String, posta As String
Totalrecords = "=counta(Main_Data!A:A)"
Aralık("L1") = Toplam Kayıtlar
Tarih olarak karart mydate
WRP'yi Ayarla = Sayfalar ("Rapor")
tarih = tarih
WRP.Range("A9") = tarihim
WRP.Range("A9").NumberFormat = "[$-F800]dddd,aaa,gg,yyyy"
WRP.Range("A9").Yatay Hizalama = xlSol
Startrow = InputBox("Yazdırılacak ilk kaydı girin.")
lastrow = InputBox("Yazdırılacak son kaydı girin.")
Startrow>lastrow ise
Msg = "ERROR" &vbCrLf& "Başlangıç satırı son satırdan küçük olmalıdır"
Msgbox Msg, vbCritical, "ExcelTip"
Bitir
i için = Startrow Son sıraya
isim = Sayfalar("Ana_veri").Hücreler(i, 1)
Street_Address = Sheets("Main_data").Cells(i, 2)
şehir = Sayfalar("Ana_veri").Hücreler(i, 3)
bölge = Sayfalar("Ana_veri").Hücreler(i, 4)
ülke = Sayfalar("Ana_veri").Hücreler(i, 5)
posta = Sayfalar("Ana_veriler").Hücreler(i, 6)
Sheets("Rapor").Range("A7") = name &vbCrLf&Street_Address&vbCrLf& şehir & bölge & ülke &vbCrLf& posta
Sheets("Rapor").Range("A11") = "Sevgili" & " " & name & ","
CheckBox1 = Doğru
CheckBox1 ise
ActiveSheet.Baskı Önizleme
Başka
ActiveSheet.PrintOut
Bitir
sonraki ben
Alt Bitiş
Kod Açıklama: - Önce değişkenleri tanımlayacağız, sonra tarih ve tarih formatını tanımlayacağız, ardından son satırı tanımlayacağız ve satıra başlayacağız. Ardından mesajı iletmek için mesaj kutusu oluşturduk. Ardından yakalamak istediğimiz veriyi ve aralığı letter olarak tanımlayacağız.
- Kodu çalıştırmak için klavyede F5 tuşuna basın.
- O zaman ilk kayıt noktasını girmelisiniz. Bundan sonra, son nokta kaydını girmek için yeni bir mesaj kutusu alacaksınız.
- Ve sonra aşağıda gösterilen belgeyi alacaksınız
- Mektup, ana verilerde belirtilen ayrıntılara göre güncellenecektir.
Microsoft Excel'de VBA aracılığıyla adres mektup birleştirmeyi bu şekilde otomatikleştirebiliriz.