Cara Memasukkan Tabel Excel Ke Word Dengan VBA

VBA adalah alat yang sangat ampuh yang dapat Anda gunakan untuk mengotomatiskan banyak pekerjaan di antara beberapa aplikasi Microsoft Office. Satu aktivitas umum yang dapat Anda otomatiskan menggunakan VBA adalah memasukkan tabel Excel ke dalam dokumen Word.

Visual Basic for Applications (VBA) adalah alat ampuh untuk mengotomatiskan banyak pekerjaan antara beberapa aplikasi Microsoft Office. Satu aktivitas umum yang dapat Anda otomatiskan menggunakan VBA adalah memasukkan tabel Excel ke dalam dokumen Word.

Ada dua cara untuk melakukan ini. Yang pertama adalah mengotomatiskan salinan dan tempel langsung dari rentang yang ada dari Excel ke tabel baru dalam dokumen Word. Yang kedua adalah melakukan perhitungan di Excel, membuat tabel baru di Word, dan menulis hasilnya ke tabel.

Anda dapat mencoba merekam makro untuk melakukan ini, tetapi makro hanya memungkinkan Anda mengotomatiskan tugas di dalam Word. Dalam artikel ini, Anda akan mempelajari cara menulis kode VBA untuk mengotomatiskan tindakan ini antara Excel dan Word.

Salin Dan Tempel Rentang Excel Ke Kata Dengan VBA

Dalam kedua contoh tersebut, kita akan mulai dengan contoh spreadsheet Excel. Sampel ini adalah daftar pesanan pembelian untuk berbagai produk.

Katakanlah Anda ingin menyalin dan menempelkan seluruh rentang sel di lembar kerja ini ke dalam dokumen Word. Untuk melakukannya, Anda harus menulis fungsi VBA yang akan dijalankan saat Anda mengeklik tombol “Salin Ke Kata”.

Pilih Pengembang dari menu dan pilih Sisipkan dari grup Kontrol di pita. Dalam daftar drop-down, pilih kontrol Tombol di bawah Kontrol ActiveX.

Selanjutnya, gambar tombol perintah di sisi kanan lembar. Anda dapat mengubah judul menjadi “Copy to Word” dengan mengklik kanan tombol dan memilih Properties . Ubah teks teks, dan Anda dapat menggunakan Font untuk memperbarui ukuran dan gaya font.

Catatan : Jika Anda tidak melihat Pengembang di menu Excel Anda, tambahkan itu. Pilih File , Options , Customize Ribbon , dan pilih All Commands dari drop-down kiri. Kemudian pindahkan Pengembang dari panel kiri ke kanan dan pilih OK untuk menyelesaikan.

Tulis Salin Dan Tempel Kode VBA

Sekarang Anda siap untuk mulai menulis kode VBA. Untuk memulai, klik dua kali tombol Salin ke Word baru untuk membuka jendela editor kode.

Anda akan melihat subrutin yang disebut Commandbutton1_Click() seperti yang ditunjukkan di bawah ini.

Anda akan ingin menyalin setiap bagian dari kode di bawah ini. Sebelum memulai pengodean, untuk mengontrol Word di komputer menggunakan VBA, Anda harus mengaktifkan pustaka referensi Microsoft Word.

Di editor kode, pilih Alat dari menu dan pilih Referensi . Dalam daftar Referensi yang Tersedia, gulir ke bawah dan aktifkan Perpustakaan Objek Microsoft Word 16.0 .

Pilih OK, dan Anda siap untuk memulai pengkodean. Kami akan membahas setiap bagian kode sekaligus, sehingga Anda memahami apa yang dilakukan kode itu dan mengapa.

Pertama, Anda perlu membuat variabel dan objek yang akan menampung rentang dan memungkinkan Anda mengontrol aplikasi Word.

Dim tblRentang Sebagai Excel.Range
Dim WordApp Sebagai Word.Application
Dim WordDoc Sebagai Word.Document
Dim WordTable Sebagai Word.Table

Baris kode berikutnya memilih rentang sel tertentu dan menyimpannya ke objek Rentang Excel di VBA.

Atur tblRange = ThisWorkbook.Worksheets(“Sheet1”).Range(“A2:G44”)

Selanjutnya, Anda ingin memeriksa apakah aplikasi Word sudah terbuka di komputer. Anda dapat mereferensikan aplikasi Word menggunakan referensi “kelas” khusus dengan perintah VBA GetObject untuk melakukannya. Jika Word belum dibuka, baris berikutnya akan meluncurkannya menggunakan fungsi CreateObject. Baris “On Error Resume Next” mencegah kesalahan apa pun dari fungsi GetObject pertama (jika Word belum dibuka) menghentikan eksekusi baris berikutnya dalam program.

Saat Kesalahan Lanjutkan
Setel Berikutnya WordApp = GetObject(class:=”Word.Application”)
Jika WordApp Bukan Apa-apa Kemudian Setel WordApp = CreateObject(class:=”Word.Application”)

Sekarang setelah aplikasi Word diluncurkan, Anda ingin membuatnya terlihat oleh pengguna dan mengaktifkannya untuk digunakan.

WordApp.Visible = Benar
WordApp.Activate

Selanjutnya, Anda ingin membuat dokumen baru di dalam aplikasi Word.

Atur WordDoc = WordApp.Documents.Add

Terakhir, Anda akan menyalin dan menempelkan rentang sel ke dalam tabel baru di dokumen Word.

tblRange.Copy
WordDoc.Paragraphs(1).Range.PasteExcelTable _
LinkedToExcel:=Salah, _
Format Kata:=Salah, _
RTF:=Salah

Sakelar pada fungsi di atas akan menyisipkan tabel yang tidak ditautkan menggunakan pemformatan sumber Excel (bukan pemformatan Word) dan tidak menggunakan format teks kaya.

Terakhir, untuk menangani rentang Excel yang lebih lebar dari dokumen, Anda harus menyesuaikan tabel baru secara otomatis, sehingga sesuai dengan margin dokumen Word baru Anda.

Atur WordTable = WordDoc.Tables(1)
WordTable.AutoFitBehavior (wdAutoFitWindow)

Dan sekarang Anda sudah selesai! Simpan file sebagai file Excel dengan makro aktif (ekstensi .xlsm). Tutup editor, simpan lagi file Excel asli, lalu klik tombol perintah Anda untuk melihat kode Anda beraksi!

Tulis Hasil Excel Ke Dalam Tabel Kata Dengan VBA

Di bagian berikutnya, Anda akan menulis kode VBA yang melakukan penghitungan nilai di Excel dan menuliskannya ke tabel di Word.

Untuk contoh ini, kami akan menarik data senilai 10 baris, menghitung, dan menulis hasilnya ke tabel dalam dokumen Word. Selain itu, tabel asli akan berisi empat kolom, dan kode VBA akan menarik sepuluh baris data pertama dari rentang tersebut.

Sama seperti di bagian terakhir, kita akan membahas setiap bagian dalam satu waktu, sehingga Anda memahami apa yang dilakukan kode itu dan mengapa.

Pertama, buat variabel dan objek yang akan menyimpan data dan memungkinkan Anda menulis ke aplikasi Word.

Dim tblRange Sebagai Excel.Range
Dim WrdRange Sebagai Word.Range
Dim WordApp Sebagai Word.Application
Dim WordDoc Sebagai Word.Document
Dim WordTable Sebagai Word.Table
Dim intRows
Dim intColumns
Dim strDate Sebagai String
Dim strItem Sebagai String
Dim intUnits Sebagai Varian
Dim intBiaya Sebagai Varian
Redupkan intTotal Sebagai Varian

Selanjutnya, atur total kolom dan baris yang ingin Anda baca dari rentang Excel.

intNoOfRows = 10
intNoOfColumns = 5

Ulangi kode yang sama seperti bagian terakhir yang akan membuka Word jika belum terbuka.

Saat Kesalahan Lanjutkan
Setel Selanjutnya WordApp = GetObject(class:=”Word.Application”)
Jika WordApp Bukan Apa-apa Kemudian Setel WordApp = CreateObject(class:=”Word.Application”)
WordApp.Visible = True
WordApp.Activate
Setel WordDoc = WordApp. Dokumen.Tambahkan

Empat baris berikutnya membuat tabel di dalam dokumen Word yang baru dibuka.

Atur WrdRange = WordDoc.Range(0, 0)
WordDoc.Tables.Add WrdRange, intNoOfRows, intNoOfColumns
Atur WordTable = WordDoc.Tables(1)
WordTable.Borders.Enable = True

Terakhir, loop berikut akan melakukan tindakan ini:

  1. Untuk setiap baris, masukkan tanggal pemesanan, item, unit, dan biaya ke dalam variabel
  2. Hitung biaya unit kali (total penjualan) dan simpan dalam variabel
  3. Untuk setiap kolom, tuliskan nilai ke tabel Word, termasuk total penjualan yang dihitung di sel terakhir
  4. Pindah ke baris berikutnya, dan ulangi prosedur di atas

Berikut tampilan kode tersebut:

Untuk i = 1 Ke intNoOfRows
Untuk j = 1 Ke intNoOfColumns
Jika j = 1 Kemudian
strDate = tblRange.Cells(i + 1, j).Nilai
strItem = tblRange.Cells(i + 1, j + 1).Nilai
intUnits = Val (tblRange.Cells(i + 1, j + 2).Value)
intCost = Val(tblRange.Cells(i + 1, j + 3).Value)
intTotal = intUnits * intCost
End If
Select Case j
Case Is = 1
WordTable .Cell(i, j).Range.Text = strDate
Case Is = 2
WordTable.Cell(i, j).Range.Text = strItem
Case Is = 3
WordTable.Cell(i, j).Range.Text = IntUnits
Case Is = 4
WordTable.Cell(i, j).Range.Text = intCost
Kasus Is = 5
WordTable.Cell(i, j).Range.Text = intTotal
Kasus Lain
Akhir Pilih
Berikutnya
Berikutnya

Fungsi “Sel” di bagian pertama menarik nilai sel dari Excel. Sel (x, y) berarti menarik nilai sel pada baris x dan kolom y.
Fungsi “Sel” di bagian terakhir menulis ke sel di tabel Word, menggunakan tugas baris dan kolom yang sama.

Setelah Anda menyimpan dan menjalankan kode VBA ini, Anda akan melihat hasilnya di dokumen Word yang baru Anda buat.

Seperti yang Anda lihat, tidak terlalu rumit untuk membuat otomatisasi yang berguna antara Excel dan Word. Ini hanya masalah memahami bagaimana berbagai “objek” bekerja untuk membuat dan mengontrol aplikasi Excel dan Word di komputer Anda.

Related Posts

© 2023 ApaFungsi.com