Cara Memasukkan Tabel Excel Ke Word Dengan VBA
Kantor Microsoft Microsoft Word Microsoft Microsoft Unggul Pahlawan Kata / / April 29, 2020
Terakhir diperbarui saat
VBA adalah alat yang sangat kuat yang dapat Anda gunakan untuk mengotomatisasi banyak pekerjaan antara beberapa aplikasi Microsoft Office. Salah satu kegiatan umum yang dapat Anda lakukan secara otomatis menggunakan VBA adalah memasukkan tabel Excel ke dalam dokumen Word.
Visual Basic for Applications (VBA) adalah alat yang sangat kuat yang dapat Anda gunakan untuk mengotomatisasi banyak pekerjaan antara beberapa aplikasi Microsoft Office. Salah satu kegiatan umum yang dapat Anda lakukan secara otomatis menggunakan VBA adalah memasukkan tabel Excel ke dalam dokumen Word.
Ada dua cara Anda bisa melakukan ini. Yang pertama adalah mengotomatiskan copy dan paste 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 bisa mencoba merekam makro untuk melakukan ini, tetapi makro hanya akan membiarkan Anda mengotomatiskan tugas-tugas di dalam Word. Di artikel ini, Anda akan belajar cara menulis kode VBA untuk mengotomatiskan tindakan ini antara Excel dan Word.
Salin dan Tempel Rentang Excel Ke Word Dengan VBA
Dalam kedua contoh, kami akan mulai dengan contoh lembar bentang Excel. Sampel ini adalah daftar pesanan pembelian untuk berbagai produk.
Katakanlah Anda ingin menyalin dan menempelkan seluruh rentang sel dalam lembar kerja ini ke dalam dokumen Word. Untuk melakukan ini, Anda harus menulis fungsi VBA yang akan berjalan ketika Anda mengklik tombol "Salin Ke Kata".
Pilih Pengembang dari menu dan pilih Memasukkan dari grup Kontrol di pita. Di daftar turun bawah, pilih Kontrol tombol di bawah Kontrol ActiveX.
Selanjutnya, gambar tombol perintah di sebelah kanan lembar. Anda dapat mengubah judul menjadi "Salin ke Kata" dengan mengklik kanan tombol dan memilih Properti. Ubah teks teks, dan Anda dapat menggunakan Font untuk memperbarui ukuran dan gaya font.
Catatan: Jika Anda tidak melihat Pengembang di menu Excel Anda, lalu tambahkan. Pilih Mengajukan, Pilihan, Sesuaikan Pita, dan pilih Semua Perintah dari drop-down kiri. Lalu pindah 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 yang baru Salin ke Word tombol untuk membuka jendela editor kode.
Anda akan melihat subrutin bernama Commandbutton1_Click () seperti yang ditunjukkan di bawah ini.
Anda ingin menyalin setiap bagian dari kode di bawah ini. Sebelum Anda mulai coding, untuk mengontrol Word di komputer Anda menggunakan VBA, Anda harus mengaktifkan perpustakaan 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 memulai pengkodean. Kami akan memeriksa setiap bagian kode pada satu waktu sehingga Anda mengerti apa yang kode itu lakukan dan mengapa.
Pertama, Anda perlu membuat variabel dan objek yang memiliki jangkauan dan memungkinkan Anda untuk mengontrol aplikasi Word.
Dim tblRange As Excel. Jarak
Dim WordApp As Word. Aplikasi
Dim WordDoc Sebagai Word. Dokumen
Dim WordTable As Word. Meja
Baris kode berikutnya memilih rentang sel tertentu dan menyimpannya ke objek Excel Range di VBA.
Set tblRange = ThisWorkbook. Lembar kerja ("Sheet1"). Rentang ("A2: G44")
Selanjutnya, Anda ingin memeriksa apakah aplikasi Word sudah terbuka di komputer. Anda dapat merujuk aplikasi Word menggunakan referensi "kelas" khusus dengan perintah GetObject VBA untuk mencapai ini. Jika Word belum dibuka, maka baris berikutnya akan meluncurkannya menggunakan fungsi CreateObject. Baris “On Error Resume Next” mencegah kesalahan apa pun dari fungsi GetObject pertama (jika Word belum terbuka) dari menghentikan eksekusi baris berikutnya dalam program.
On Error Resume Selanjutnya
Setel WordApp = GetObject (class: = "Word. Aplikasi")
Jika WordApp Bukan Apa-apa Kemudian Tetapkan WordApp = CreateObject (class: = "Word. Aplikasi")
Sekarang aplikasi Word diluncurkan, Anda ingin membuatnya terlihat oleh pengguna dan mengaktifkannya untuk digunakan.
WordApp. Terlihat = Benar
WordApp. Mengaktifkan
Selanjutnya, Anda ingin membuat dokumen baru di dalam aplikasi Word.
Setel WordDoc = WordApp. Dokumen Menambahkan
Terakhir, Anda akan menyalin dan menempelkan rentang sel ke tabel baru di dokumen Word.
tblRange. Salinan
WordDoc. Paragraf (1) .Range. PasteExcelTable _
LinkedToExcel: = Salah, _
WordFormatting: = Salah, _
RTF: = Salah
Switch dalam fungsi di atas akan menyisipkan tabel yang tidak terhubung menggunakan sumber format Excel (bukan format Word) dan tidak menggunakan format teks kaya.
Terakhir, untuk menangani rentang Excel yang lebih luas dari dokumen, Anda harus melakukan autofit pada tabel baru sehingga sesuai dengan margin dokumen Word baru Anda.
Setel WordTable = WordDoc. Tabel (1)
WordTable. AutoFitBehavior (wdAutoFitWindow)
Dan sekarang Anda selesai! Simpan file sebagai file Excel berkemampuan makro (ekstensi .xlsm). Tutup editor, simpan kembali file Excel asli, dan kemudian klik tombol perintah Anda untuk melihat kode Anda beraksi!
Tulis Hasil Excel Menjadi Tabel Kata Dengan VBA
Di bagian selanjutnya ini, Anda akan menulis kode VBA yang melakukan perhitungan pada nilai-nilai di Excel, dan menuliskannya ke sebuah tabel di Word.
Untuk contoh ini, kami akan menarik 10 baris data, menghitung, dan menulis hasilnya ke tabel di dokumen Word. Juga, tabel asli akan berisi empat kolom, dan kode VBA akan menarik sepuluh baris pertama data dari rentang itu.
Sama seperti di bagian terakhir, kami akan menelusuri setiap bagian sekaligus sehingga Anda memahami apa yang dilakukan kode itu dan mengapa.
Pertama, buat variabel dan objek yang akan menampung data dan memungkinkan Anda untuk menulis ke aplikasi Word.
Dim tblRange As Excel. Jarak
Dim WrdRange As Word. Jarak
Dim WordApp As Word. Aplikasi
Dim WordDoc Sebagai Word. Dokumen
Dim WordTable As Word. Meja
Dim intRows
Dim intColumns
Dim strDate As String
Dim strItem As String
Dim intUnits As Variant
Dim intCost Sebagai Varian
Dim intTotal As Variant
Selanjutnya, atur total kolom dan baris yang ingin Anda baca dari rentang Excel.
intNoOfRows = 10
intNoOfColumns = 5
Ulangi kode yang sama dengan bagian terakhir yang akan membuka Word jika belum terbuka.
On Error Resume Selanjutnya
Setel WordApp = GetObject (class: = "Word. Aplikasi")
Jika WordApp Bukan Apa-apa Kemudian Tetapkan WordApp = CreateObject (class: = "Word. Aplikasi")
WordApp. Terlihat = Benar
WordApp. Mengaktifkan
Setel WordDoc = WordApp. Dokumen Menambahkan
Empat baris berikutnya membuat tabel di dalam dokumen Word yang baru dibuka.
Setel WrdRange = WordDoc. Rentang (0, 0)
WordDoc. Tabel. Tambahkan WrdRange, intNoOfRows, intNoOfColumns
Setel WordTable = WordDoc. Tabel (1)
WordTable. Perbatasan. Aktifkan = Benar
Akhirnya, loop berikut akan melakukan tindakan ini:
- Untuk setiap baris, masukkan tanggal pesanan, item, unit, dan biaya ke dalam variabel
- Hitung biaya satuan kali (total penjualan) dan simpan dalam variabel
- Untuk setiap kolom, tulis nilai ke tabel Word, termasuk total penjualan yang dihitung di sel terakhir
- Pindah ke baris berikutnya, dan ulangi prosedur di atas
Seperti apa kode itu:
Untuk i = 1 Ke intNoOfRows
Untuk j = 1 Ke intNoOfColumns
Jika j = 1 Lalu
strDate = tblRange. Sel (i +1, j) .Nilai
strItem = tblRange. Sel (i +1, j +1) .Nilai
intUnits = Val (tblRange. Sel (i + 1, j + 2) .Nilai)
intCost = Val (tblRange. Sel (i + 1, j + 3) .Nilai)
intTotal = intUnits * intCost
Berakhir jika
Pilih Kasus j
Huruf Is = 1
WordTable. Cell (i, j) .Range. Teks = strDate
Huruf Is = 2
WordTable. Cell (i, j) .Range. Teks = strItem
Huruf Is = 3
WordTable. Cell (i, j) .Range. Teks = intUnits
Huruf Is = 4
WordTable. Cell (i, j) .Range. Teks = intCost
Huruf Is = 5
WordTable. Cell (i, j) .Range. Teks = intTotal
Case Else
End Select
Lanjut
Lanjut
Fungsi "Sel" di bagian pertama menarik nilai sel dari Excel. Sel (x, y) artinya menarik nilai sel pada baris x dan kolom y.
Fungsi "Cell" di bagian terakhir menulis ke sel-sel dalam tabel Word, menggunakan penugasan baris dan kolom yang sama.
Setelah Anda menyimpan dan menjalankan kode VBA ini, Anda akan melihat hasilnya di dokumen Word yang baru dibuat.
Seperti yang Anda lihat, tidaklah terlalu rumit untuk membuat beberapa otomatisasi yang bermanfaat antara Excel dan Word. Ini hanya masalah memahami bagaimana berbagai "objek" bekerja yang dapat membuat dan mengontrol aplikasi Excel dan Word di komputer Anda.