Çoğu zaman, verileri bir excel dosyasından bir word belgesine kopyalamanız gerekir. Bunu bir makro ile çok kolay bir şekilde yapabilirsiniz. Makro yeni/mevcut bir kelime belgesi açacak, içeriği kopyalayacak ve ardından kelime belgesini kaydedip kapatacaktır. Bunun nasıl yapıldığını görelim.
Kullanabileceğiniz kod -
Seçenek Açık
Alt CreateNewWordDoc()
Dim i Tamsayı Olarak
wrdApp Nesne Olarak Dim, Nesne Olarak wrdDoc
Set wrdApp = CreateObject(“Word.Application”)
wrdApp.Visible = Doğru
wrdDoc = wrdApp.Documents.Add olarak ayarlayın
wrdDoc ile
i = 1 ila 100 için
.Content.Insert“İşte örnek bir test satırı #” ve i
.Content.InsertParagraphSonra
sonraki ben
Eğer Dir(“B:\Test\MyNewWordDoc.docx”) “” Sonra “B:\Test\MyNewWordDoc.docx” öğesini öldürün
.Farklı Kaydet (“B:\Test\MyNewWordDoc.docx”)
.Kapat
İle bitmek
wrdApp.Çık
wrdDoc'u ayarla = Hiçbir şey
wrdApp'i ayarla = Hiçbir şey
Alt Bitiş
Yukarıdaki kodu dosyanıza kopyalamak için,
- Klavyede Alt + F11 tuşlarına basın
- Sol tarafta Microsoft Excel Nesneleri göreceksiniz.
- Sağ tıklayın ve Ekle'yi seçin
- Ardından Modül'e tıklayın
- Kodu sağdaki kod penceresine kopyalayın
Şimdi bu kodun nasıl çalıştığını görelim -
İlk önce, excel dosyasından doc kelimesine doldurulurken her satırı artırmak için ihtiyacımız olan değişkenleri -i tamsayı olarak ilan ediyoruz. Ardından 2 nesne değişkeni wrdApp ve wrdDoc, wrdApp Word Uygulaması nesnesidir ve wrdDoc, Word Belgesi nesnesidir.
Set wrdApp = CreateObject(“Word.Application”)
Word sisteminizde zaten çalışıyorsa,CreateObject yeni bir Word örneği oluşturacaktır. Dolayısıyla bu satır, wrdApp nesne değişkenini, daha sonra kodda kullanabileceğiniz Word Uygulamasına atar.
wrdApp.Visible = Doğru
Yeni oluşturulan Word örneği, oluşturulduğunda görünmeyecektir. Görünür hale getirmek için, wrdApp.Visible = True değerini görünür hale getirmeniz gerekir.
wrdDoc = wrdApp.Documents.Add olarak ayarlayın
Word uygulamasının yeni örneğini oluşturduk ancak henüz boş bir word belgesi açmadık. Yani bu komut yeni bir word belgesi açacaktır. wrdDoc nesnesi bu yeni belgeye atanmıştır, böylece onu daha sonra kodda kullanabiliriz.
Yeni bir çalışma kitabı açmak istemiyorsanız, ancak mevcut bir çalışma kitabını açmak istiyorsanız, bu satırı şu şekilde değiştirebilirsiniz:
wrdDoc = wrdApp.Documents.Open(“B:\Belgelerim\WordDocs\Doc1.docx”) olarak ayarlayın
Bu satır, belirtilen konuma kaydedilmiş mevcut bir kelime belgesini açar.
wrdDoc ile… .Son ile
Bu, tamamen wrdDoc nesnesiyle çalışacak olan “With” döngümüzdür. Bu döngüyü bir kez açtığınızda, bu döngüde “wrdDoc” metnini tekrarlamanız gerekmez. wrdDoc ile ilgili herhangi bir nesneden önce doğrudan nokta (“.”) ile başlayabilirsiniz. Bu döngü ile biter İle bitmek Beyan. End With ifadesi girildikten sonra, wrdDoc'tan sonraki nesnelere yalnızca “.” ile başvuramazsınız.
i = 1 ila 100 için
.Content.Insert“İşte örnek bir test satırı #” &i
.Content.InsertParagraphSonra
sonraki ben
Bu "For" döngüsüdür. 1'den 100'e kadar artar ve her artışta “İşte örnek test satırı #” metnini içeren bir satır ekler ve ardından artım numarasını ekler. Sonra bir satır sonu / paragraf sonu ekler, böylece bir sonraki artış, yeni bir paragraf gibi sonraki satırda görünür.
For döngüsü For i = 1'den 100'e kadar olduğu için bu işlem 100 kez tekrarlanacaktır. Bu, alacağınız çıktıdır -
Eğer Dir(“B:\Test\MyNewWordDoc.Docx”) “” Sonra “B:\Test\MyNewWordDoc.docx” öğesini öldürün
.Farklı Kaydet (“B:\Test\MyNewWordDoc.docx”)
.Kapat
“For” döngüsü tamamlandığında, kod MyNewWordDoc.docx dosyasının var olup olmadığını kontrol edecektir. Yaparsa silecektir. Ardından yeni dosyayı aynı isimle kaydedecek ve dosyayı kapatacaktır.
wrdApp.Çık
wrdDoc'u ayarla = Hiçbir şey
wrdApp=Hiçbir şey olarak ayarla
Kelime uygulaması kapatılır ve ardından oluşturulan 2 nesne serbest bırakılır veya “Hiçbir Şey” olarak ayarlanır, böylece bu nesneler tarafından işgal edilen bellek serbest bırakılır. Bu, içeriği excel'den word'e kopyalamakla ilgilenen kodun tamamıdır.