Secara otomatis mengirim email dari excel berdasarkan alur konten sel

“Perencanaan kompensasi dan bonus tahunan itu mudah,” kata tidak pernah ada profesional Sumber Daya Manusia. Itulah mengapa kita akan melihat mengotomatiskan email dari Excel

Show

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
Secara otomatis mengirim email dari excel berdasarkan alur konten sel
Kolom dasar untuk Tabel Excel

Langkah 2. Konversi rentang Anda ke Tabel Excel *

  1. Klik di mana saja di sepanjang rentang A1. J1
  2. Dari pita Excel, klik Sisipkan
  3. Klik Tabel
  4. 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

  1. Tab pita Desain Alat Tabel muncul (Jika tidak, pastikan Anda masih mengklik di dalam rentang A1. J2)
  2. Cari grup Properti di sepanjang pita. Klik di dalam Nama Tabel dan ketik 'Tabel1' untuk mengganti nama Tabel Anda menjadi 'Karyawan'
Secara otomatis mengirim email dari excel berdasarkan alur konten sel
Mengubah rentang menjadi Tabel Excel

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
Secara otomatis mengirim email dari excel berdasarkan alur konten sel
Data karyawan, input manual

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

=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

Secara otomatis mengirim email dari excel berdasarkan alur konten sel
Data karyawan, input plus formula

Menambahkan Skrip VBA

Langkah 1. Akses juga Jendela Editor Visual Basic

  1. Menggunakan pintasan keyboard Alt + F11
  2. 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
Secara otomatis mengirim email dari excel berdasarkan alur konten sel
Mengaktifkan tab Pengembang Excel

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)

Secara otomatis mengirim email dari excel berdasarkan alur konten sel
Jendela Editor Visual Basic, area Project Explorer

Langkah 3. Klik kanan nama file dan pilih Insert > Module

Secara otomatis mengirim email dari excel berdasarkan alur konten sel
Menambahkan Modul ke proyek VBA

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)

Secara otomatis mengirim email dari excel berdasarkan alur konten sel
Menambahkan kode ke Modul proyek VBA Anda

Langkah 5. Klik X di sudut kanan atas untuk kembali ke jendela utama Excel

Secara otomatis mengirim email dari excel berdasarkan alur konten sel
Menutup jendela Editor Visual Basic

Kirim Email Anda

Langkah 1. Tambahkan bentuk yang bisa Anda gunakan sebagai tombol makro

  1. Dari Pita Excel Anda, klik Sisipkan > Bentuk
  2. Klik Bentuk pilihan Anda. Di sini kita menggunakan Rectangle. Sudut Bulat
  3. 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"
Secara otomatis mengirim email dari excel berdasarkan alur konten sel
Menambahkan Bentuk ke lembar kerja Excel Anda

Langkah 2. Tetapkan makro baru Anda ke bentuk Anda

  1. Klik kanan pada Shape
  2. Klik 'Tetapkan Makro'
  3. Dialog Tetapkan Makro muncul. Pilih opsi 'Buku Kerja Ini', lalu klik nama makro
  4. Klik OK untuk menutup dialog Tetapkan Makro
Secara otomatis mengirim email dari excel berdasarkan alur konten sel
Menetapkan makro ke Bentuk pada lembar kerja Excel

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

Secara otomatis mengirim email dari excel berdasarkan alur konten sel
Klik tombol makro baru untuk mengirim email secara otomatis atau menyusunnya secara otomatis di Outlook sebagai draf, bergantung pada opsi yang dipilih dalam kode

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
”’Untuk setiap baris yang dipilih, kumpulkan bagian-bagian penting dari
”’ pesan email dari Tabel

SendToName = Rentang ("C" & c. Baris)
CCName = Range(“D” & c. Baris)
Subyek = Rentang ("Saya" & c. Baris)
tubuh = Rentang ("J" & c. Baris)

2/ Di bagian ini, perhatikan bahwa saya sekali lagi menambahkan baris baru untuk menyertakan penerima cc di email saya

”’Tulis pesan khusus
Dengan oMail
Kepada = KirimKeNama
cc = Nama CC
Subyek = Subyek
Tubuh = tubuh

Itu saja. Ini akan memungkinkan Anda untuk sekarang mengirim ke penerima cc

Semoga beruntung

kata Alina .

Hai. Saya ingin tahu bagaimana saya juga dapat menambahkan ke lampiran email saya?

kata Szilvia Juhasz .

Halo Alina,
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

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)
AttachmentsInfo = Range(“D” & c. Baris) 'Baris kode BARU
Subyek = Rentang ("Saya" & c. Baris)
tubuh = Rentang ("J" & c. Baris)

Dengan oMail
Kepada = KirimKeNama
Subyek = Subyek
Tubuh = tubuh
Lampiran. Tambahkan AttachmentsInfo 'baris kode BARU

Saya juga menemukan artikel ini yang menjelaskan lebih detail, yang dapat Anda coba sesuaikan dengan file Anda
https. //wellsr. com/vba/2018/excel/excel-vba-kirim-email-dengan-lampiran/

Semoga beruntung

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”
Harap tinjau kembali Langkah 3 di postingan asli saya, dan catat bagian tentang opsi pengiriman tunggal ketika Anda hanya memiliki satu email untuk dikirim

2/ “… setelah 1 jam”
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

Semoga beruntung

ilir danaj mengatakan.

Hai Svilvia, terima kasih telah menjawab pertanyaan saya
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

Sub Worksheet_Change Pribadi (Target ByVal Sebagai Rentang)
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 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?

Terima kasih
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
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

ub EmailAllTEST()
Redupkan oApp Sebagai Objek
Redupkan oMail Sebagai Objek
Redupkan SendToName Sebagai String
Redupkan Subjek Sebagai String
Redupkan Tubuh Sebagai Tali

Untuk Setiap c Dalam Seleksi 'melalui (secara manual) catatan yang dipilih
”’Untuk setiap baris yang dipilih, kumpulkan bagian-bagian penting dari
”’ pesan email dari Tabel

SendToName = Rentang ("C" & c. Baris)
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)

”’Tulis email untuk setiap rekaman yang dipilih
”'Tetapkan variabel objek
Atur oApp = CreateObject(“Outlook. Aplikasi")
Tetapkan oMail = oApp. BuatItem(0)

Tanda tangan = oMail. tubuh

”’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,
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'

Tetap saja, selalu datang untuk meninjau sebelum mengirim, atau kesalahan Run-time '287' untuk debugging

‘. Menampilkan
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?

Cara membuat template email Outlook dinamis untuk pengguna saat ini .
Siapkan tabel Excel Anda
Hasilkan konten yang tepat untuk tabel. Gambar untuk disisipkan. Cara mendapatkan tautan yang berfungsi. .
Buat kumpulan data dari file Excel Anda
Jadikan templat Outlook Anda dinamis. Cara menambahkan gambar untuk pengguna saat ini. .
Baik untuk pergi. )

Bagaimana cara mengirim email secara otomatis dari lembar kerja Excel menggunakan VBA?

Di VBA, untuk mengirim email dari Excel, kami dapat secara otomatis mengotomatiskan fitur surat kami untuk mengirim email ke banyak pengguna sekaligus. .
Di VBA, Buka Alat > Referensi
Sekarang, kita akan melihat pustaka referensi objek. .
Setelah mengatur referensi objek, klik “OK. ”

Bisakah Excel mengirim peringatan email secara otomatis?

Kami dapat mengirim email pengingat secara otomatis dari Excel dengan Power Automate dan tidak memerlukan pemrograman. Anda bahkan tidak perlu membuka file Excel untuk memicu pengiriman email.

Bagaimana cara mengirim email secara otomatis dari Excel berdasarkan konten sel?

Di Excel, Anda dapat mengeklik sel dan mengirim email secara otomatis. Ini dapat dilakukan dengan rumus menggunakan Fungsi HYPERLINK . Anda dapat membuat rumus hyperlink yang menggunakan perintah mailto dan mengisi bidang secara otomatis seperti, subjek, cc, dan isi email.