Excel To Word Macro - Tips Excel

Daftar Isi

Terima kasih kepada Jake yang memberikan pertanyaan Excel minggu ini:

Bagaimana saya bisa menulis makro yang akan mengambil data spreadsheet Excel dan membuat file Word untuk setiap baris data?

Jake - ide yang bagus! Saya sering memiliki hasil penjualan untuk seluruh perusahaan dan akan sangat bagus untuk dapat mengirim setiap perwakilan hanya informasinya di Word. Anda dapat melakukan ini dari Word menggunakan Mail Merge, tetapi mengontrol Word dari Excel adalah prospek yang menarik. Contoh di bawah ini cukup mudah, tetapi konsep ini dapat dibangun di atas untuk melakukan aplikasi yang cukup canggih.

Pertama, mari kita lihat contoh kumpulan data. Saya membuat buku kerja dengan dua lembar - satu disebut Data dan satu lagi disebut Template. Lembar kerja Data memiliki banyak baris data. Lembar kerja Templat memiliki struktur Dokumen Word yang ingin saya buat. Dalam hal ini, saya ingin menyalin nama dari kolom A database ke sel C4 pada template. Kolom B: E database akan masuk ke sel C10: C13.

Pertama, mari kita lihat contoh kumpulan data. Saya membuat buku kerja dengan dua lembar - satu disebut Data dan satu lagi disebut Template. Lembar kerja Data memiliki banyak baris data. Lembar kerja Templat memiliki struktur Dokumen Word yang ingin saya buat. Dalam hal ini, saya ingin menyalin nama dari kolom A database ke sel C4 pada template. Kolom B: E database akan masuk ke sel C10: C13.

Lembar Data
Lembar Templat

Mulai Editor VB dengan alt-F11. Karena kami ingin mengeluarkan perintah Word di sini, Buka Alat> Referensi. Gulir ke bawah untuk menemukan "Microsoft Word 8" dan centang kotak di samping untuk memilih item ini.

Untuk mengontrol Word dari Excel, Anda perlu menentukan variabel untuk mewakili aplikasi Word. Pada contoh di bawah, saya menggunakan appWD. Untuk setiap perintah di Makro Excel yang ingin Anda terapkan ke aplikasi Word, Anda cukup memberi awalan perintah dengan appWD. Faktanya, karena saya belum pernah menulis sebaris kode Makro Word sebelumnya, saya pergi ke Word, mencatat tindakan, lalu menyalin kode itu ke Excel, menambahkan awalan sebelum setiap baris.

Sub ControlWord() ' You must pick Microsoft Word 8.0 from Tools>References ' in the VB editor to execute Word commands. ' See VB Help topic "Controlling One Microsoft Office Application from Another" ' for more information. ' Originally published by www.MrExcel.com 2/28/1999 Dim appWD As Word.Application ' Create a new instance of Word & make it visible Set appWD = CreateObject("Word.Application.8") appWD.Visible = True Sheets("Data").Select 'Find the last row with data in the database FinalRow = Range("A9999").End(xlUp).Row For i = 2 To FinalRow Sheets("Data").Select ' Copy the name to cell C4 Range("A" & i).Copy Destination:=Sheets("Template").Range("C4") ' Copy data columns, transpose and paste in C10:C13 Range("B" & i & ":E" & i).Copy Sheets("Template").Select Range("C10").PasteSpecial Transpose:=True ' Copy the data for the new document to the clipboard Range("A1:F15").Copy ' Tell Word to create a new document appWD.Documents.Add ' Tell Word to paste the contents of the clipboard into the new document appWD.Selection.Paste ' Save the new document with a sequential file name appWD.ActiveDocument.SaveAs FileName:="File" & i ' Close this new word document appWD.ActiveDocument.Close Next i ' Close the Word application appWD.Quit End Sub

Setelah menjalankan makro ini, Anda akan memiliki satu file Word baru untuk setiap baris data di lembar data Anda.

Terima kasih sekali lagi kepada Jake untuk pertanyaan bagus ini. Ada banyak aplikasi di mana mengontrol Word dari dalam Excel dapat memberikan solusi yang ampuh.

Artikel yang menarik...