“Perencanaan kompensasi dan bonus tahunan itu mudah,” kata tidak pernah ada profesional Sumber Daya Manusia. Itulah mengapa kita akan melihat mengotomatiskan email dari Excel
Memang, perencanaan kompensasi dan bonus bisa jadi sulit. Anda harus berhasil menyeimbangkan banyak bagian yang bergerak. membangun metrik yang bermakna, mengumpulkan/mengelola data yang kompleks dan sensitif untuk mendukung keputusan, merencanakan dan melakukan sesi peninjauan, mengirim komunikasi karyawan yang sangat pribadi, dan banyak lagi.
Hari ini, tutorial kami berfokus pada satu bagian khusus dari perencanaan kompensasi dan bonus. komunikasi penghargaan bonus karyawan
Dengan menggunakan aplikasi Microsoft Excel yang Anda kenal, Anda akan mempelajari semua tentang mengotomatiskan email dari Excel. cara membuat dan mengirim email khusus karyawan yang disesuaikan ke penerima yang berbeda dalam satu klik, langsung dari spreadsheet Excel Anda
Yang diperlukan hanyalah
- Tabel Excel sederhana
- Skrip plug and play (VBA).
- Klik tombol
Mengapa mempelajari tentang mengotomatiskan email dari Excel?
Sebagai manajer SDM yang sibuk yang bertugas mengirimkan email pemberitahuan bonus, Anda dapat menjalankan aplikasi Outlook dan mengirimkan email satu per satu. Tapi ini akan sangat memakan waktu, dan rawan kesalahan.
Salah satu faktor yang menyulitkan adalah kami harus menyesuaikan pesan email setiap karyawan dengan informasi yang sangat spesifik. Satu gerakan salin-tempel yang tidak disengaja setelah sore yang panjang, dan Anda mungkin secara tidak sengaja mengirimkan informasi gaji Julia kepada Joe—skenario mimpi buruk untuk sedikitnya
Di antara tantangan otomatisasi yang kami hadapi
- Anda memiliki banyak penerima individu yang berbeda
- Anda memiliki beberapa baris subjek yang berbeda, misalnya, beberapa karyawan mungkin tidak menerima bonus tahun ini
- Badan pesan perlu memasukkan bonus khusus karyawan dan data pembayaran
Kami membutuhkan cara untuk merampingkan ini
Solusinya?
“Kita semua adalah programmer sekarang”
Fakta menyenangkan. Excel telah berkembang secara signifikan selama 35 tahun sejarahnya yang kaya. Ini menggarisbawahi salah satu keunggulan kompetitif terbesar Excel?
Sebagai ilustrasi, mari bandingkan dua teknologi Excel yang sangat berbeda yang dapat kami adaptasi untuk membantu kami mengotomatiskan email dari Excel. VBA atau Power Automate. Ini bukan perbandingan yang komprehensif, tetapi ini mengingatkan kami pada kemampuan beradaptasi Excel yang kuat di berbagai batasan yang mungkin Anda temui
Makro MethodProsConsVBA• “Lama” = sudah dicoba dan benar?• Pendekatan DIY terbaik
• Intervensi TI mendekati nol diperlukan karena ini "dikemas" dengan Excel. Keuntungan besar, terutama di lingkungan perusahaan besar tertentu
• Banyak informasi online gratis, kemungkinan karena sudah ada begitu lama • Tampilan dan nuansa kuno ke antarmuka
• Makro tidak dapat berjalan di awan
• Dapat diganti / dihentikan oleh Microsoft… suatu hari nanti (atau begitulah rumor yang terus mengancam)
• Beberapa orang mungkin mengolok-olok Anda karena menggunakannya ¯\_(ツ)_/¯ #okboomer
• Kurva pembelajaran setelah beberapa makro sederhana yang sukses menjadi lebih curamPower Automate (alias "Aliran")• Teknologi cloud modern
• Antarmuka yang intuitif, dengan tampilan dan nuansa modern
• Ramah kolaborasi
• Cepat & mudah diatur sebagai operasi solo kecil
• Sedikit intervensi TI yang diperlukan karena ini "dikemas" dengan Excel (selama Anda memiliki versi yang tepat)
• Tidak semua versi Excel kompatibel
• Dapat membingungkan untuk mengarahkan/menyiapkan izin di lingkungan perusahaan, terutama di lingkungan yang dikontrol ketat (oleh TI).
• Dapat membingungkan untuk menavigasi/menyiapkan di lingkungan solo jika Anda tidak ahli dalam memahami semua langganan/versi yang tersedia
• Lebih sedikit informasi yang ditemukan secara online, mungkin karena masih relatif belum ditemukan
Makro VBA vs. Power Automate (alias "Aliran")
Perlu diulangi bahwa konteks adalah segalanya. Pengorbanan harus dievaluasi dalam setiap situasi. Untuk tutorial kami hari ini, kami akan fokus pada mengotomatiskan email dari Excel menggunakan solusi VBA yang sudah terbukti benar
Asumsi Keberhasilan Tutorial
Anda telah menginstal Microsoft Office, aktif dan berjalan, termasuk Excel dan Outlook. (Perhatikan bahwa tutorial ini tidak mencakup cara berintegrasi dengan penyedia email lain)
Anda memiliki pemahaman Excel tingkat menengah hingga rendah
Anda telah mengunduh file contoh Excel untuk melihat tutorial ini beraksi
Sekarang, mari kita mulai
Siapkan Tabel Data Karyawan Anda
Langkah 1. Masukkan 10 tajuk kolom melintasi rentang A1. J1 sebagai berikut.
- Nama
- Nama depan
- Kirim ke
- Gaji
- Persen Bonus Maks
- Bonus Persen Dicapai
- Hadiah Bonus $
- Subjek Email
- Badan Email
- Tautan Kirim Tunggal
Langkah 2. Konversi rentang Anda ke Tabel Excel *
- Klik di mana saja di sepanjang rentang A1. J1
- Dari pita Excel, klik Sisipkan
- Klik Tabel
- Pastikan opsi 'Tabel saya memiliki tajuk' dicentang dan klik OK
* Meskipun Tabel secara teknis tidak diperlukan untuk solusi VBA yang disajikan dalam artikel ini, Tabel Excel adalah kebiasaan yang baik untuk dikuasai, terutama jika Anda berencana beralih ke pendekatan yang lebih modern seperti Power Automate nanti
- Tab pita Desain Alat Tabel muncul (Jika tidak, pastikan Anda masih mengklik di dalam rentang A1. J2)
- Cari grup Properti di sepanjang pita. Klik di dalam Nama Tabel dan ketik 'Tabel1' untuk mengganti nama Tabel Anda menjadi 'Karyawan'
Langkah 3. Tambahkan input data karyawan Anda ke Tabel Anda
Perhatikan, kolom Tabel kami adalah campuran kolom formula dan non-formula. Dalam contoh hari ini, kami akan menganggap kolom data berikut adalah kolom non-formula, yang telah Anda salin atau masukkan secara manual
Kolom
- A. Nama
- C. Kirim ke
- D. Gaji
- E. Persen Bonus Maks
- F. Bonus Persen Dicapai
Kiat Teratas. Saat Anda melakukan langkah 4-8, Anda akan melihat sintaks khusus yang menggunakan nama kolom yang diapit tanda kurung, bukan referensi sel. Sintaks ini (disebut referensi terstruktur) adalah standar untuk Tabel Excel. Sintaks dihasilkan secara otomatis, sehingga saat Anda mengetik rumus, dan Anda mengarahkan dan mengeklik kolom yang dimaksud, tanda kurung dan nama kolom dibuat untuk Anda
Langkah 4. Masukkan rumus berikut untuk menghitung kolom B, Nama Depan
=KIRI([@Nama],CARI(” “,[@Nama])-1)
Penjelasan. Dapatkan nama depan dengan mengekstraksi semua karakter yang tersisa dari ruang pertama yang ditemukan di Nama lengkap
Langkah 5. Masukkan rumus berikut untuk menghitung kolom G, Bonus Award $
=[@Gaji]*[@[Bonus Persen Dicapai]]
Penjelasan. Mengalikan Salary $ dengan Bonus Pct Achieved untuk menghitung total dolar bonus yang harus dibayarkan
Langkah 6. Masukkan rumus berikut untuk menghitung kolom H, Subjek Email
=IF([@[Bonus Award $]]>0,”Selamat”,
“Catatan dari manajer Anda”)
Penjelasan. JIKA menghitung bonus $ > 0, gunakan “Selamat” sebagai baris subjek email. Jika tidak, gunakan "Catatan dari manajer Anda"
Langkah 7. Masukkan rumus berikut untuk menghitung kolom I, Badan Email
=IF([@[Bonus Award $]]>0, “Hai “&[@[Nama Depan]] &”. Bonus Anda tahun ini adalah “&TEXT([@[Bonus Award $]],”$0,000″)&” Selamat. ”, “Halo ” &[@[Nama Depan]]&”. Manajer Anda akan segera menghubungi Anda untuk menyiapkan rapat tinjauan. Terima kasih. ”)
Penjelasan. JIKA bonus berlaku, kirim pesan ucapan selamat. Kalau tidak, kirim pesan tentang rapat tinjauan yang akan datang
Langkah 8. Masukkan rumus berikut untuk menghitung kolom J, Single Send Link
=HYPERLINK(“mailto. “&[@[Send To]]&”?subject=”&[@[Email Subject]]&”&body=”&[@[Email Body]],”SEND”)
Penjelasan. Membuat hyperlink yang dapat Anda klik jika ingin menulis email secara otomatis ke satu penerima tanpa menggunakan VBA. Dengan mengklik Hyperlink, formula membuat email secara otomatis tersusun
Ini membuat hyperlink yang dapat Anda klik jika Anda ingin menulis email secara otomatis ke satu penerima tanpa menggunakan VBA. Dengan mengklik Hyperlink, rumus membuat email yang dibuat secara otomatis
Anda sekarang memiliki tabel yang terisi penuh
Menambahkan Skrip VBA
Langkah 1. Akses juga Jendela Editor Visual Basic
- Menggunakan pintasan keyboard Alt + F11
- Mengklik tab Pengembang Anda, lalu mengklik ikon Visual Basic. Jika Anda tidak melihat tab Pengembang, ikuti langkah-langkah di bawah ini
- Klik kanan di mana saja pada pita.
- Klik Sesuaikan Pita
- Pilih Tab Utama
- Periksa Pengembang
- Klik Oke
Langkah 2. Temukan nama file Anda di area Project Explorer di sudut kiri atas jendela
(Selama file Anda terbuka di Excel dan disimpan sebagai file. xlsm, itu akan muncul dalam daftar)
Langkah 3. Klik kanan nama file dan pilih Insert > Module
Langkah 4. Di area kosong di sebelah kanan, salin tempel kode yang muncul di
Setelah Anda menyalinnya ke Modul VBA, itu akan terlihat seperti tangkapan layar di bawah ini (termasuk huruf tebal untuk komentar kode apa pun)
Langkah 5. Klik X di sudut kanan atas untuk kembali ke jendela utama Excel
Kirim Email Anda
Langkah 1. Tambahkan bentuk yang bisa Anda gunakan sebagai tombol makro
- Dari Pita Excel Anda, klik Sisipkan > Bentuk
- Klik Bentuk pilihan Anda. Di sini kita menggunakan Rectangle. Sudut Bulat
- Simbol + muncul. Dari sini Anda dapat "menggambar" bentuk Anda, lalu klik kanan untuk menambahkan beberapa teks deskriptif ke bentuk Anda. Dalam contoh ini kami menggunakan "Kirim ke Pilih Karyawan"
Langkah 2. Tetapkan makro baru Anda ke bentuk Anda
- Klik kanan pada Shape
- Klik 'Tetapkan Makro'
- Dialog Tetapkan Makro muncul. Pilih opsi 'Buku Kerja Ini', lalu klik nama makro
- Klik OK untuk menutup dialog Tetapkan Makro
Langkah 3. Sorot untuk memilih satu atau lebih Nama Karyawan di Tabel Anda
Anda dapat memilih dari kolom mana pun di Tabel. Untuk memilih sel yang tidak bersebelahan, gunakan Ctrl + Klik
Setelah pilihan Anda selesai, klik tombol makro baru Anda. Email Anda akan secara otomatis DIKIRIM (jika Anda memilih opsi ini dalam kode), atau email tersebut akan disusun secara otomatis di Outlook, dalam mode draf, sehingga Anda dapat memeriksanya terlebih dahulu
*Ingat, Anda juga dapat mengklik hyperlink kolom 'Single Send Link' (Kol J) untuk menulis satu email
Mengotomatiskan Email dari Excel. Pikiran Berpisah
Masalah otomatisasi email hanyalah salah satu contoh dari banyak tantangan serupa yang dihadapi oleh SDM dan profesional bisnis lainnya. Meskipun ada sejumlah aplikasi, perangkat lunak, dan layanan yang tersedia di pasar yang dapat membantu, fleksibilitas, kemampuan beradaptasi, keakraban, dan kemampuan penyesuaian ekstrem adalah beberapa keuntungan utama yang ditawarkan Excel. Saya harap tutorial ini menginspirasi Anda untuk menjelajah lebih jauh. Dengan sedikit kreativitas dan kemauan untuk menerapkan beberapa yang baru (atau lama. ) Teknik Excel, Anda dapat mengotomatiskan ribuan tugas manual yang membosankan. Jangan heran jika Anda mendapatkan bonus yang bagus untuk kontribusi Anda
Lampiran A. Salin Kode VBA yang Dapat Ditempel
Sub EmailAll() Dim oApp As Object Dim oMail As Object Dim SendToName As String Dim theSubject As String Dim theBody As String For Each c In Selection 'loop through (manually) selected records '''For each row in selection, collect the key parts of '''the email message from the Table SendToName = Range("C" & c.Row) theSubject = Range("H" & c.Row) theBody = Range("I" & c.Row) '''Compose emails for each selected record '''Set object variables. Set oApp = CreateObject("Outlook.Application") Set oMail = oApp.CreateItem(0) '''Compose the customized message With oMail .To = SendToName .Subject = theSubject .Body = theBody ''' If you want to send emails automatically, use the Send option. ''' If you want to generate draft emails and review before sending, use the Display option. ''' Do not use both! '''To activate your chosen option: Remove the single quote from the beginning of the code line, then '''add the single quote back to the option you didn't choose .Display '.Send End With Next c End Sub– – –
Terima kasih telah membaca tutorial kami; . Jika Anda mengalami masalah apa pun saat mempraktikkan langkah-langkah ini, pastikan untuk mengirimi kami baris di bagian komentar kami, di mana kami akan menghubungi Anda sesegera mungkin. Semakin banyak detail yang dapat Anda berikan, semakin baik. Harap gunakan situs ini untuk mengunggah tangkapan layar apa pun yang ingin Anda bagikan dengan pertanyaan Anda
Szilvia Juhasz
Penulis, pembicara, konsultan, dan penggila Excel. Szilvia membawa banyak kecerdasan, pengalaman, dan pendidikan ke dalam misinya. Untuk menyelamatkan profesinya dari kekacauan harian kegilaan spreadsheet, dan menuju dunia yang lebih tercerahkan di mana kegembiraan analitik data modern dapat menginformasikan, menjelaskan, menceritakan kisah, dan mengubah bisnis
Komentar
Δ
kata Ayush Rawal . Itu bagus untuk mengirim email gratis melalui pengaturan yang sedikit rumit
Tapi berapa batas maksimum tidak ada email yang dikirim melalui integrasi vba dan outlook
kata Katie Stearns . Hai Ayush, Terima kasih banyak telah membaca dan mengajukan pertanyaan ini Sejauh yang kami tahu, tidak ada batasan resmi jumlah email yang dikirim melalui integrasi Excel/Outlook
Szilviia . Katie - Anda benar. Saya belum secara pribadi menguji batasannya jadi saya tidak bisa memastikannya. Batasan apa pun yang ada mungkin lebih tentang sumber daya perangkat keras versus batasan bawaan di Excel atau Outlook itu sendiri
kata Stephen Ioannides . Hai Katie,
Suka instruksi yang sederhana dan jelas – kode Anda bekerja pertama kali – yang bagi saya adalah bonus nyata – Pertanyaan saya, jika Anda tidak keberatan memperluas paradigma. Saya ingin mengirim, di badan, sejumlah item data individual tertentu dari kolom yang ditentukan dalam tabel data, dan/atau secara opsional, blok teks yang terdiri dari rentang sel/kolom. Apakah mungkin menambahkan ekstensi kode untuk mencapai itu?
kata Szilvia . Halo Stefanus Ide Anda terdengar sangat bisa dilakukan, tetapi sedikit lebih banyak informasi akan sangat membantu. Saya akan melakukan yang terbaik di sini untuk mencoba membayangkan apa yang Anda cari dan memberi Anda beberapa hal untuk dicoba…. 🙂 Sejauh memodifikasi apa yang dikirim di badan email, Anda memiliki beberapa opsi 1/ Pada tabel itu sendiri, Anda dapat memodifikasi rumus yang digunakan di kolom I sedemikian rupa sehingga menangkap informasi tambahan yang Anda inginkan, yaitu "item data spesifik dari kolom yang ditentukan..." dan / atau blok teks tambahan. Tentu saja rumus ini bisa menjadi sangat panjang jika Anda memiliki persyaratan yang rumit, jadi pilihan kedua…
2/ Tambahkan beberapa kolom baru di tabel Anda untuk menangkap persyaratan baru Anda. Misalnya, Anda menggunakan kolom K dan L untuk mengambil data/teks tambahan untuk dimasukkan ke dalam isi. Dalam kode VBA, Anda dapat mengubah baris berikut
theBody = Range(“I” & c. Baris)
ke berikut ini
theBody – Range(“I” & c. Baris) & ” ” & Range(“K” & c. Baris) & ” ” & Range(“L” & c. Baris)
Baris yang dimodifikasi di atas akan menggabungkan kolom I, K, dan L, dan menyertakan spasi di antaranya (" " mengembalikan spasi)
Saya harap ini memberi Anda beberapa ide untuk memulai. Semoga beruntung
kata Szilvia . Koreksi theBody – Range(“I” & c. Baris) & ” ” & Range(“K” & c. Baris) & ” ” & Range(“L” & c. Baris) harus menjadi tanda sama dengan segera setelah Tubuh, jadi ... theBody = Range(“I” & c. Baris) & ” ” & Range(“K” & c. Baris) & ” ” & Range(“L” & c. Baris) adalah sintaks yang benar
kata Vee . Terima kasih banyak untuk ini. Hampir semuanya berfungsi, tetapi untuk beberapa alasan, ketika saya mengklik tombol VBA "Kirim ke Kontak yang Dipilih", hanya email kosong ke orang itu yang muncul tanpa isi subjek kami. Ketika saya menggunakan tautan sekali kirim, email itu terisi. Adakah kemungkinan Anda bisa menunjukkan apa yang salah di sini?
kata Szilvia Juhasz . Hai Vee Satu-satunya cara saya dapat mereproduksi perilaku email kosong yang Anda jelaskan adalah jika saya mengklik tombol 'Kirim ke Karyawan Terpilih' tanpa terlebih dahulu memilih karyawan mana pun. Dengan kata lain – kursor Anda harus berada di suatu tempat di dalam tabel Anda SEBELUM Anda mengklik tombol ‘Kirim ke Karyawan Terpilih’ (jika tidak, makro tidak “tahu” karyawan mana yang Anda minati, sehingga membuat email kosong). Cara yang benar untuk melakukannya dijelaskan secara mendetail di Langkah 3 (“Sorot untuk memilih satu atau lebih Nama Karyawan di Tabel Anda”) di bagian “Kirim Email Anda. ” bagian dari artikel ini JIKA Anda telah mengonfirmasi bahwa Anda mengikuti langkah ini dengan benar dan masih tidak berfungsi, ada beberapa hal lain yang perlu dikonfirmasi 1/ Pastikan ada sesuatu di kolom 'Badan Email', dan ini adalah kolom I 2/ Pastikan ada sesuatu di kolom 'Subjek Email', dan ini adalah kolom H Saya harap ini membantu… Beri tahu kami
kata Szilvia Juhasz . EDIT. Mengenai seleksi karyawan. Anda sebenarnya dapat memposisikan kursor Anda DI LUAR tabel, asalkan diposisikan di salah satu baris yang ditempati oleh data tabel. Dalam contoh untuk artikel ini, itu berarti baris 2. 6
kata Mathew . Terima kasih banyak Szilvia untuk tutorial hebat ini Tahukah Anda jika ada cara untuk mengirimkan email ini setiap hari pada waktu tertentu tanpa menekan tombol kirim setiap hari?
kata Szilvia Juhasz . Hai Matius. Jawaban singkatnya adalah YA, itu mungkin. Tugas terjadwal dapat diselesaikan dengan Power Automate (terlalu banyak penjelasan untuk satu komentar), atau VBA. Keduanya memiliki pro & kontra, mirip dengan yang saya jelaskan di artikel ini Jika Anda ingin menggunakan makro VBA untuk melakukan ini, saya sarankan menjelajahi sesuatu yang disebut metode VBA "Tepat Waktu". Misalnya, baris kode berikut akan menjalankan makro yang disebut "MyMacro" (disimpan di Modul 1 buku kerja bernama 'Emailer. xlsx”) di 4. 00PM setiap hari Aplikasi. Waktu Tepat WaktuNilai(“4. 00 WIB”), “C. \MyStuff\Emailer. xlsx. Modul 1. MyMacro” Beberapa gotcha. Aplikasi. Tepat waktu bisa rumit. Jika Anda melakukan hal lain di Excel tepat pada pukul 16:00, Anda mungkin mendapatkan kesalahan karena terlalu banyak hal yang terjadi di Excel. Ada pendekatan lain yang dapat Anda pertimbangkan, tetapi menurut saya akan lebih mudah jika hanya mengklik tombol. Lagipula itu hanya satu klik, berapa lama waktu yang dibutuhkan, benarkah ??? Semoga bermanfaat untuk memulai
TY . Hai, heran jika saya memiliki beberapa email untuk dikirim, bagaimana saya bisa menggunakan cc ke 2 email yang berbeda?
kata Szilvia Juhasz . Hai Ty. Ya, ini mungkin dilakukan, itu membutuhkan dua langkah. 1/ Masukkan kolom baru di tabel Anda untuk memasukkan alamat email cc Anda. 2/ Ubah kode VBA untuk mengenali kolom baru dan fakta bahwa Anda ingin menyertakan penerima cc Berikut adalah contoh rinci tentang bagaimana melakukan ini Katakanlah Anda telah memasukkan kolom baru di sebelah 'Kirim Ke'. Anda akan menggunakan kolom ini (D) untuk memasukkan alamat penerima cc. (Perhatikan, jika Anda memiliki beberapa penerima di kolom 'CC' baru Anda (D), Anda dapat menambahkan semuanya, menggunakan titik koma untuk memisahkannya, dengan cara yang sama jika Anda mengetik langsung di email Outlook. Anda dapat melakukan hal yang sama untuk kolom 'Kirim Ke', jika Anda memiliki lebih dari satu penerima utama yang ingin disertakan) Sekarang Anda memiliki kolom D baru ini, perhatikan bahwa semua kolom berikutnya telah bergeser satu kolom ke kanan. Karena itu, dan karena kami memiliki penerima CC baru, kami perlu memodifikasi kode VBA dalam dua bagian 1/ Pada bagian ini…. perhatikan saya menambahkan baris baru untuk variabel baru yang disebut "CCName" Untuk Setiap c Dalam Seleksi 'melalui (secara manual) catatan yang dipilih SendToName = Rentang ("C" & c. Baris) 2/ Di bagian ini, perhatikan bahwa saya sekali lagi menambahkan baris baru untuk menyertakan penerima cc di email saya ”’Tulis pesan khusus Itu saja. Ini akan memungkinkan Anda untuk sekarang mengirim ke penerima cc Semoga beruntung
”’Untuk setiap baris yang dipilih, kumpulkan bagian-bagian penting dari
”’ pesan email dari Tabel
CCName = Range(“D” & c. Baris)
Subyek = Rentang ("Saya" & c. Baris)
tubuh = Rentang ("J" & c. Baris)
Dengan oMail
Kepada = KirimKeNama
cc = Nama CC
Subyek = Subyek
Tubuh = tubuh
kata Alina . Hai. Saya ingin tahu bagaimana saya juga dapat menambahkan ke lampiran email saya?
kata Szilvia Juhasz . Halo Alina, Namun jika Anda siap menghadapi tantangan, dan Anda ingin melakukan ini dengan cara yang lebih otomatis, pendekatannya sangat mirip dengan apa yang saya jelaskan di pertanyaan sebelumnya dari TY di posting blog ini. Dalam kasus Anda, Anda dapat membuat kolom baru di tabel Anda untuk menyimpan informasi file sumber. Tapi alih-alih CCName, Anda bisa memberi nama kolom Anda "Lampiran". Di kolom baru ini Anda kemudian akan menambahkan jalur lengkap / nama file dari lampiran yang diinginkan Misalnya, katakanlah kolom baru ini sekarang menjadi D. Bagian kode yang dimodifikasi akan terlihat seperti ini SendToName = Rentang ("C" & c. Baris) Dengan oMail Saya juga menemukan artikel ini yang menjelaskan lebih detail, yang dapat Anda coba sesuaikan dengan file Anda Semoga beruntung
Apakah Anda perlu mengirim lampiran yang sama ke setiap email? . Tambahkan lampiran seperti biasa di email mana pun. Ini adalah cara termudah – tetapi bukan yang tercepat. Perbedaan besar, pilihlah
AttachmentsInfo = Range(“D” & c. Baris) 'Baris kode BARU
Subyek = Rentang ("Saya" & c. Baris)
tubuh = Rentang ("J" & c. Baris)
Kepada = KirimKeNama
Subyek = Subyek
Tubuh = tubuh
Lampiran. Tambahkan AttachmentsInfo 'baris kode BARU
https. //wellsr. com/vba/2018/excel/excel-vba-kirim-email-dengan-lampiran/
ILIR DANAJ mengatakan. Hai Szilvia Juhasz, pekerjaan yang sangat luar biasa
Saya ingin mengirim email otomatis, bukan untuk setiap sel yang saya ubah, karena biasanya saya akan mengubah banyak sel, dan saya tidak ingin mengirim banyak email, tetapi hanya satu. Jadi untuk mengirim email otomatis, setelah melakukan perubahan di buku kerja, setelah 1 jam. Apa itu mungkin?
kata Szilvia Juhasz . Hai ILIR DANAJ Saya mendengar dua pertanyaan di sini, jadi saya akan membahasnya secara terpisah 1/ “Saya tidak ingin mengirim banyak email, tapi hanya satu” 2/ “… setelah 1 jam” Semoga beruntung
Harap tinjau kembali Langkah 3 di postingan asli saya, dan catat bagian tentang opsi pengiriman tunggal ketika Anda hanya memiliki satu email untuk dikirim
Saya pikir Anda bertanya apakah mungkin melakukan pengiriman terjadwal? . Dalam pengalaman saya menggunakan VBA untuk melakukan pengiriman terjadwal berdasarkan waktu bukanlah pilihan terbaik. Ada metode yang lebih baik / lebih modern yang diperkenalkan Microsoft seperti Power Automate. tapi itu adalah topik untuk keseluruhan postingan lainnya dan di luar cakupan postingan ini
ilir danaj mengatakan. Hai Svilvia, terima kasih telah menjawab pertanyaan saya Sub Worksheet_Change Pribadi (Target ByVal Sebagai Rentang)
Ini adalah scrip yang saya coba terapkan. Jadi untuk setiap perubahan yang akan saya buat di file, saya ingin mengirim dan email otomatis hanya sekali setelah 1 jam, hanya jika ada perubahan
Redupkan xRgSel Sebagai Kisaran
Redupkan xOutApp Sebagai Objek
Redupkan xMailItem Sebagai Objek
Dim xMailBody Sebagai String
Pada Kesalahan Lanjutkan Berikutnya
Aplikasi. Pembaruan Layar = Salah
Aplikasi. Peringatan Tampilan = Salah
Aplikasi. Waktu Tepat WaktuNilai(“20. 00. 00”), “Kirim Email”
'Aplikasi. Tepat Waktu Sekarang + Nilai Waktu(“00. 01. 00”)
Tetapkan xRg = Range(“A2. NF33”)
Tetapkan xRgSel = Perpotongan(Target, xRg)
ActiveWorkbook. Menyimpan
Jika Tidak xRgSel Bukan Apa-apa Lalu
Atur xOutApp = CreateObject(“Outlook. Aplikasi")
Atur xMailItem = xOutApp. BuatItem(0)
xMailBody = “Halo semuanya” & “. ” & vbNewLine & vbNewLine & _
“Jadwal bulanan telah diperbarui” & “. ” & ” ” & vbNewLine & _
"Sel" & xRgSel. Alamat(Salah, Salah) & _
” di lembar kerja '” & Saya. Nama & “‘ telah diubah pada ” & _
Format$(Sekarang, “mm/dd/yyyy”) & ” at ” & Format$(Sekarang, “hh. mm. ss”) & _
” oleh ” & Lingkungan$(“nama pengguna”) & “. ” & ” ” & vbNewLine & _
“Silakan periksa jadwal Anda untuk setiap perubahan” & “. ”
Dengan xMailItem
Ke = “mail1@myemail. Al"
CC = “mail@myemail. Al"
Subjek = “Lembar Kerja dimodifikasi di ” & Buku Kerja Ini. Nama lengkap
Isi = xMailBody
Mengirim
Berakhir dengan
Atur xRgSel = Tidak ada
Atur xOutApp = Tidak ada
Atur xMailItem = Tidak ada
Berakhir jika
Aplikasi. Peringatan Tampilan = Benar
Aplikasi. Pembaruan Layar = Benar
Akhir Sub
kata Szilvia Juhasz . Halo. Berdasarkan apa yang menurut saya Anda tanyakan, saya tidak yakin apa yang dapat saya sarankan dalam posting singkat di sini. Saya ingin tahu apakah Anda telah menguji kode ini? Mengenai komentar Anda. “hanya jika ada perubahan dalam satu jam terakhir. ”. Apakah Anda sudah menyusun mekanisme untuk benar-benar mendeteksi apakah perubahan telah terjadi? . Mengubah pelacakan pada file desktop Excel tidaklah mudah. Di Excel online jauh lebih mudah – tetapi 'gotcha' di sini adalah, makro tidak dapat berjalan di cloud. Jadi, Anda memiliki dua platform untuk disulap. Excel desktop dan Excel online. Namun posting blog lain jika Anda benar-benar ingin pergi ke rute itu Sebelum Anda pergi ke sana. Menurut saya Power Automate adalah alternatif yang lebih baik jika Anda menginginkan KEDUA hal tersebut secara bersamaan. 1/ cara yang efisien untuk melacak kapan perubahan telah dilakukan, DAN 2/ kemampuan untuk mengirim email secara otomatis dari Excel berdasarkan apakah ada yang berubah. Satu keuntungan besar dengan Power Automate adalah lebih selaras dengan "masa depan" Excel. Ini adalah fakta bahwa VBA akan menjadi semakin tidak penting untuk banyak tugas dalam waktu dekat / jangka panjang, meskipun VBA masih digunakan di BANYAK spreadsheet saat ini, termasuk model tertentu yang saya buat untuk saya dan klien saya Saya sarankan untuk memeriksa tutorial berikut oleh Mynda Treacy tentang pengiriman email dari Excel dengan Power Automate. https. //Youtube. be/1g7NA5hYYSo untuk melihat apakah ini bisa menjadi opsi untuk Anda Semoga beruntung
kata Daniele Martinez . Hai, Terima kasih
Terima kasih atas penjelasan ini
Semuanya berfungsi dengan baik, kecuali setelah email dibuat, tanda tangan saya tidak disertakan (saya perlu menambahkannya secara manual)
Apakah mungkin untuk menambahkannya ke makro?
Atau apakah saya melakukan sesuatu yang salah?
Daniele
kata Szilvia Juhasz . Hi Daniele
Ada beberapa cara untuk menambahkan tanda tangan tetapi kodenya menjadi sedikit lebih rumit. Saya mencari tahu apakah ada cara yang “mudah”… pertanyaan pertama adalah. apakah Anda memiliki gambar di tanda tangan default Anda? . terima kasih
kata Jon Beamer . Saya mencoba melakukan hal yang sama dan ada gambar di tanda tangan organisasi kami. Saya bertanya-tanya, jika buku kerja ada di drive bersama, dapatkah beberapa karyawan menggunakannya pada waktu yang berbeda untuk membuat email dengan tanda tangan default mereka sendiri? Saya juga bertanya-tanya apakah mungkin membuat PDF dari salah satu spreadsheet di buku kerja dan melampirkannya ke email. Jika Anda memerlukan informasi lebih lanjut, beri tahu saya
kata Bhumi . Hi Szilvia, Terima kasih atas tutorial yang sangat membantu dan mudah dipahami ini. Saya punya pertanyaan – Isi email saya sedikit lebih panjang dan memiliki template tabel touchbase tempat saya mencoba mendapatkan jawaban atas pertanyaan spesifik dari karyawan saya. Ketika saya mencoba untuk menyalin dan menempelkan templat itu, excel memberi saya kesalahan yang mengatakan “Nilai teks dalam rumus dibatasi hingga 255 karakter. Untuk membuat nilai teks yang lebih panjang dalam rumus, gunakan fungsi CONCATENATE atau operator gabungan(&). Bagaimana saya bisa menyelesaikan ini. Apakah ada cara saya dapat mengirimkan template email yang saya coba tempel? Bantuan apa pun akan sangat dihargai Terima kasih
kata Szilvia Juhasz . Hai Bhumi ub EmailAllTEST() Untuk Setiap c Dalam Seleksi 'melalui (secara manual) catatan yang dipilih SendToName = Rentang ("C" & c. Baris) ”’Tulis email untuk setiap rekaman yang dipilih Tanda tangan = oMail. tubuh
Ya, ada batasan bawaan di Excel untuk jumlah karakter di sel mana pun. Sayangnya tidak ada solusi yang mudah di sisi Excel dalam contoh yang telah kami ilustrasikan di sini. Beberapa pendekatan untuk dijelajahi
1. Pertimbangkan untuk menggunakan program email kaya fitur seperti MailChimp
2. Buat dua (atau tiga, tergantung berapa lama balasannya) kolom terpisah untuk 'Email Body' dan lakukan "rangkaian" di sisi kode VBA sebagai gantinya. Saya tidak yakin ini membuat hidup Anda lebih mudah, namun, karena Anda masih akan dihadapkan pada tantangan untuk menyalin sebagian tanggapan karyawan ke dalam satu kolom, dan bagian lainnya ke kolom berikutnya… Kemudian kode akan terlihat seperti ini
Redupkan oApp Sebagai Objek
Redupkan oMail Sebagai Objek
Redupkan SendToName Sebagai String
Redupkan Subjek Sebagai String
Redupkan Tubuh Sebagai Tali
”’Untuk setiap baris yang dipilih, kumpulkan bagian-bagian penting dari
”’ pesan email dari Tabel
CCName = Range(“D” & c. Baris)
Subyek = Rentang ("Saya" & c. Baris)
theBodyParagraphOne = Range(“J” & c. Baris) 'membaca kolom J dan K untuk dua paragraf
theBodyParagraphTwo = Range(“K” & c. Baris)
”'Tetapkan variabel objek
Atur oApp = CreateObject(“Outlook. Aplikasi")
Tetapkan oMail = oApp. BuatItem(0)
”’Tulis pesan khusus
Dengan oMail
Kepada = KirimKeNama
cc = Nama CC
Subyek = Subyek
body = theBodyParagraphOne & vbNewLine & theBodyParagraphTwo ”membagi teks email menjadi dua paragraf
”’ sisa kode tetap sama seperti aslinya…
Saya pikir menggunakan program pemasaran email akan lebih mudah. Alternatifnya, lihat jawaban saya sebelumnya tentang Power Automate. Meskipun ini bisa dibilang merupakan pendekatan tipe "tidak diperlukan kode", masih ada kurva pembelajaran di sana
Saya tidak tahu apakah itu membantu tetapi saya harap Anda dapat menghargai keterusterangan saya ¯\_(ツ)_/¯
MICHAEL LEVETT . Hai Bhumi, Tutorial yang fantastis, terima kasih banyak. Saya bertanya-tanya apakah mungkin untuk menerapkan formula untuk menggabungkan data dari beberapa baris menjadi satu email jika alamat email 'kirim ke' sama? Bantuan apa pun akan sangat dihargai Salam
Mike
Matius mengatakan. Hai, dijelaskan dengan sangat baik, terima kasih atas informasi ini. Hanya ingin tahu apakah Anda dapat membantu menjelaskan cara mengubah akun tempat email dikirim secara otomatis karena saya memiliki lebih dari satu kotak surat. Terima kasih banyak 🙂
kata Neville Parker . Hai, yang di sana, Ini adalah tutorial yang besar. Saya telah berhasil membuat semuanya berfungsi menggunakan tautan kirim pada spreadsheet yang dimodifikasi. Saya tidak bisa menjalankan makro. Debugger berhenti di sini Atur oApp = CreateObject(“Outlook. Aplikasi") Saya memiliki program lain yang ditetapkan sebagai aplikasi email default di iMac saya. Saya juga menggunakan versi Outlook 2016 untuk Mac Apakah ada pengaturan yang perlu saya ubah?
kata Neville . Hai, yang di sana, Terima kasih atas panduan fantastis ini. Saya telah berhasil membuat semuanya berfungsi hingga titik tautan tunggal untuk spreadsheet hasil siswa. Saya mengalami masalah dengan makro dan berharap Anda dapat membantu. Menjalankan debugger menyoroti baris ini Atur oApp = CreateObject(“Outlook. Aplikasi") Saya menjalankan excel Mac 2016 dengan login 365 Semoga bisa membantu, terima kasih Nev
kata anthony . Hai, Tutorial hebat karena saya berhasil mengekstrak teknik ini dan menggunakannya di buku kerja yang sedang saya gunakan meskipun saya punya pertanyaan di daftar karyawan, ada beberapa baris yang kosong karena saya tidak punya karyawan sepertinya itu adalah masalah bagi saya untuk mengirim semua email sekaligus meskipun saya menggunakan saya hapus centang pada kotak kosong di kirim ke hanya memiliki baris email saya menerima pesan kesalahan yang mengatakan ” Outlook tidak mengenali satu atau beberapa nama ” Bisakah Anda membantu saya dengan ini?
nev parker . Hai, Hanya ingin tahu bagaimana cara menambahkan jeda baris ke dalam teks BODY untuk mencapainya Penerima yang terhormat, Ini adalah isi email – kalimat pertama Terima kasih Aku terima kasih
Mainak berkata. Hi Szilvia, Tetap saja, selalu datang untuk meninjau sebelum mengirim, atau kesalahan Run-time '287' untuk debugging ‘. Menampilkan
Saya tidak tahu mengapa saya tidak dapat mengirim email secara otomatis bahkan setelah 'Hapus kutipan tunggal dari awal KIRIM, lalu tambahkan kutipan tunggal kembali ke opsi TAMPILAN'
Mengirim
danica berkata. Hai. Apakah ada cara bagi saya untuk menggunakan ini untuk mengirim email secara otomatis setiap bulan? Saya membayangkan akan cukup mudah untuk menambahkan pernyataan ya/tidak dan pernyataan if else untuk menunjukkan jika mereka telah mengirimkan ini kepada kami, tetapi saya tidak yakin cara membuatnya sehingga email ini berpotensi dikirim satu kali. Bagaimana cara mengirim email dinamis dari Excel?
Bagaimana cara mengirim email secara otomatis dari lembar kerja Excel menggunakan VBA?
Bisakah Excel mengirim peringatan email secara otomatis?
Bagaimana cara mengirim email secara otomatis dari Excel berdasarkan konten sel?