Bir örnek belge açmak,
İçeriğini kopyalayıp yeni yaratılan belgelere yapıştırmak ve
Belgeden belgeye içerik aktarmak.
Application nesnesinin Documents özelliği üzerinde Open fonksiyonunu kullanarak var olan bir belgeyi açabilirsiniz.
Argüman olarak belgenin dosya sistemindeki tam adresini veren bir karakter dizgisi sağlamalısınız; isteğe bağlı olan diğer argümanlarla şu an ilgilenmiyoruz.
Open fonksiyonunun sonuç değeri açtığınız belgeyi temsil eden bir Document nesnesidir.
Açtığınız belgeyi temsil eden Document nesnesi üzerinde Range fonksiyonuyla bir bölge tanımlayabilirsiniz.
Bir kaynak belgede tanımladığınız bölgeden bir hedef belgede tanımladığınız bölgeye içerik aktarabilirsiniz.
İçeriğinde değişiklikler yaptığınız hedef belgeyi SaveAs2 fonksiyonuyla yeni bir adla kaydedebilirsiniz.
Bir mektup örneği gibi, çoğaltacağınız bir örnek belgeniz olsun.
Örnek belgeye aktaracağınız bilgileri içeren belgeye ait “ThisDocument” VBA projesinde bir altyordam yaratın.
Açacağınız örnek belgeyi temsil edecek bir Document nesnesi tanımlayın:
Dim ornekBelge As Document
Örnek belgeyi açan bir fonksiyon çağrısı ekleyin:
Set ornekBelge = Documents.Open("OrnekBelge.docx")
Kaynak ve hedef belgelerde ilgilendiğiniz bölgeleri temsil edecek olan Range nesneleri tanımlayın:
Dim kaynakBolge As Range, hedefBolge As Range
Kaynak ve hedef bölgeleri tanımlayıp içerik aktarması yapacak komutlar ekleyin. Örneğin, kaynak belgenin birinci paragraf metnini hedef belgenin ilk paragrafı sonuna ekletmek için şöyle komutlar yazabilirsiniz:
Set kaynakBolge = Me.Range(Me.Paragraphs(1).Range.Start, Me.Paragraphs(1). Range.End-1)
Set hedefBolge = ornekBelge.Range(ornekBelge.Paragraphs(1). Range.End-1, ornekBelge.Paragraphs(1). Range.End-1)
hedefBolge.InsertBefore kaynakBolge.Text
Bu örnek adımlarda bölge sınırlarını fazla dolambaçlı şekillerde tanımladık. Siz aynı işlemleri daha kısa yollardan yapmayı deneyebilirsiniz.
İçerik eklemesi yaptığınız örnek belgeyi yeni bir adla kaydedip kapatacak komutlar ekleyin:
ornekBelge.SaveAs2("ÖrnekBelge_Kopya1.docx")
ornekBelge.Close
Gösterdiğimiz tüm adımları kaynak belgeden altaracağınız her bölge için tekrarlayın.
Burada sunacağımız örnek altyordamı birer isim içeren üç paragrafı olan bir beşgeye ait VBA projesine ekledik:
Şeybey Adımalum
Bilaleddin Ekmeğinettin
Reis Cek Sıparrov
Altyordam bu kaynak belge paragraflarından alacağı isimleri şu mektup örneğinin hitap satırına ekleyerek yeni mektup belgeleri oluşturacaktır:
Örnek mektubun paragraf düzenini görmeniz için içeriğini resim olarak sunduk.
Kaynak Dosya: “BelgeAcmakIcerikAktarmak.docm”
Unutmayın; kitap veya ekran satırına sığmayan komut satırları alta sarkmış olabilir. Siz onları tek satır olarak yazacaksınız!
Sub BelgeAcmakIcerikAktarmak()
Dim ornekBelge As Document
Dim kaynakBolge As Range, hedefBolge As Range
Dim i As Integer
For i = 1 To Me.Paragraphs.Count
Set ornekBelge = Documents.Open("ÖrnekMektup.docx")
Set kaynakBolge = Me.Range(Me.Paragraphs(i).Range.Start, Me.Paragraphs(i).Range.End - 1)
Set hedefBolge = ornekBelge.Range(ornekBelge.Paragraphs(1).Range.End - 1, ornekBelge.Paragraphs(1).Range.End - 1)
hedefBolge.InsertBefore kaynakBolge.Text
ornekBelge.SaveAs2 ("ÖrnekMektup_Kopya" & CStr(i) & ".docx")
ornekBelge.Close
Next
End Sub
CStr fonksiyonu argüman olarak verdiğiniz sayıyı veya başka türden bir değeri bir karakter dizgisine, yani bir metin parçasına dönüştürür. Bu örnek altyordamda bu fonksiyonu “ÖrnekMektup_Kopya1.docx”, “ÖrnekMektup_Kopya2.docx”, … şeklinde belli bir düzen izleyen dosya adlarını oluşturmak için kullandık.