Tutorial Excel – Kirim email dari Excel
Biasanya, kami menggunakan klien email seperti Outlook, Gmail, dll. untuk mengirim email. Namun, banyak orang menyimpan data di buku kerja Excel dan perlu mengirim beberapa data ke orang lain saat mereka bekerja dengannya. Oleh karena itu, mereka perlu mengirim email langsung dari buku kerja Excel, yang menghemat waktu pengoperasian klien email. Tutorial langkah demi langkah ini akan menunjukkan cara mengirim email dari Excel dalam kondisi yang berbeda.
Note: Sebelum menerapkan metode berikut, Anda perlu mengonfigurasi klien email Outlook di komputer Anda dan mengaturnya sebagai klien email default Anda.
Daftar Isi: [ Bersembunyi ]
1. Dasar-dasar mengirim email dari Excel
Bagian ini memperkenalkan dasar-dasar pengiriman email dari Excel.
1.1 Kirim email dari Excel dengan fungsi bawaan Excel
Jika Anda hanya ingin mengirim email sederhana dari Excel, hanya menyertakan bidang Kepada, Subjek, Cc, dan isi. Fungsi bawaan di Excel dapat membantu.
1.1.1 Kirim email dari Excel dengan rumus
Seperti yang ditunjukkan pada tabel di bawah ini, untuk mengirim email yang berbeda dari Excel berdasarkan bidang yang diberikan, Anda dapat menggunakan referensi sel dari bidang yang diberikan untuk membuat rumus Hyperlink yang berbeda untuk menyelesaikannya. Setelah membuat hyperlink email, Anda dapat mengklik hyperlink yang Anda butuhkan untuk mengirim email secara otomatis.
Catatan: Jika ada lebih dari satu penerima di bidang Kepada atau Cc, pisahkan dengan titik koma.
Bagian ini dibagi menjadi empat bagian untuk menunjukkan kepada Anda langkah-langkah menambahkan alamat email, penerima Cc, baris subjek, dan teks isi secara terpisah ke rumus Hyperlink. Silakan lakukan sebagai berikut.
Sintaks dan argumen dari HIPERLINK fungsinya adalah sebagai berikut.
Sintaksis
HYPERLINK(link_location, [friendly_name])
kasus
1.1.1.1 Tambahkan alamat email ke rumus Hyperlink
Di sini kami menggunakan "mailto:" sebagai bagian dari rumus untuk menambahkan penerima email. Dalam contoh ini, alamat email penerima pertama ada di sel B2, jadi kita perlu menambahkan "mailto:" dan merujuknya ke sel B2.
“mailto:”&B2
1. Pilih sel untuk menampilkan hyperlink. Dalam hal ini, saya memilih sel F2.
2. Kemudian masukkan rumus berikut ke dalamnya.
=HYPERLINK("mailto:"&B2)
Note: Jika Anda menekan tombol Enter key, hyperlink akan dibuat seperti yang ditunjukkan pada gambar di bawah. Saat Anda mengklik tautan, email Outlook akan dibuat dan alamat email penerima akan terisi di bidang Kepada secara otomatis.
Alamat email penerima sekarang ditambahkan ke rumus Hyperlink. Silakan lanjutkan dengan langkah-langkah berikut untuk menambahkan baris subjek, penerima Cc, dan teks isi sesuai kebutuhan.
1.1.1.2 Tambahkan penerima Cc ke rumus Hyperlink
Untuk menambahkan penerima Cc ke fungsi Hyperlink, tambahkan "?cc=" sebagai bagian dari rumus sebagai berikut.
Rumus di sel F2 harus sebagai berikut:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2)
1.1.1.3 Tambahkan baris subjek ke rumus Hyperlink
Untuk menambahkan baris subjek ke fungsi Hyperlink, silakan tambahkan "&subjek=" sebagai bagian dari rumus sebagai berikut.
Rumus di sel F2 sekarang akan terlihat seperti berikut:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2)
1.1.1.4 Tambahkan teks isi dengan jeda baris ke rumus Hyperlink
Langkah terakhir adalah menambahkan teks isi ke rumus Hyperlink. Seperti yang Anda lihat dalam contoh, dua baris teks di E2 dipisahkan oleh pemisah baris, dan Anda ingin mempertahankan pemisah baris di badan email. Apakah Outlook mengenali jeda baris dalam keadaan ini? Mari kita periksa.
Untuk menambahkan teks isi ke rumus Hyperlink, Anda perlu menambahkan “&tubuh=” sebagai bagian dari rumus sebagai berikut.
Rumus di sel F2 sekarang ditampilkan sebagai berikut:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2)
Catatan: Jika Anda menekan Enter kunci dan klik tautannya. Anda dapat melihat di email baru bahwa konten di badan email ditampilkan di baris yang sama.
Untuk menampilkan badan email dalam baris terpisah, Anda perlu memodifikasi konten sel dengan menambahkan kode karakter carriage return %0A ke teks tempat Anda perlu menyisipkan jeda baris. Lihat tangkapan layar:
1.1.1.5 Tentukan teks yang akan ditampilkan untuk hyperlink
Pada langkah di atas, kami menyelesaikan argumen Link_location dengan bidang email. Di sini, di bagian ini, kita akan menyelesaikan argumen berikutnya [friendly_name].
Dalam hal ini, saya ingin sel hyperlink menampilkan teks sebagai “Email ke xx”, di mana xx adalah nama penerima di A2. Jadi, rumus di F2 harus diubah menjadi:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2, "Email to "&A2)
Tekan Enter kunci untuk mendapatkan hasil.
Pilih sel rumus ini dan seret Tuas IsiOtomatis down untuk membuat hyperlink email lainnya. Lihat tangkapan layar:
1.1.2 Kirim email dari Excel dengan fungsi Hyperlink
Kecuali menggunakan rumus Hyperlink di atas, Anda dapat membuat hyperlink email secara manual dengan Menyisipkan Hyperlink fungsi di Excel. Bagian ini akan menunjukkan langkah-langkahnya.
1. Klik kanan email tempat Anda ingin menyisipkan hyperlink, pilih Link dari menu klik kanan.
2. Dalam bermunculan Sisipkan Hyperlink kotak dialog, Anda perlu mengkonfigurasi sebagai berikut.

Saat mengklik hyperlink, email Outlook akan dibuat dengan bidang To, Subject, dan Body yang ditentukan seperti yang ditunjukkan pada tangkapan layar di bawah.
Catatan:
1.2 Kirim email ke beberapa penerima dalam sel dengan skrip VBA
Pada contoh di atas, Anda dapat melihat beberapa alamat email ditampilkan dalam sel, dipisahkan oleh titik koma. Jika Anda memiliki daftar alamat email seperti yang ditunjukkan pada gambar di bawah dan ingin mengirim email atau email independen ke semuanya, kode VBA berikut dapat membantu Anda.
1.2.1 Kirim email ke beberapa penerima di sel dengan skrip VBA
1. Di lembar kerja yang berisi semua alamat email yang ingin Anda kirimi email. tekan lain + F11 kunci untuk membuka Microsoft Visual Basic untuk Aplikasi jendela.
2. Dalam Microsoft Visual Basic untuk Aplikasi window, klik Menyisipkan > Modul, lalu paste kode berikut ke dalam Modul (Kode) jendela.
Kode VBA: Kirim email ke daftar alamat email
Sub sendmultiple()
'updateby Extendoffice 20220802
Dim xOTApp As Object
Dim xMItem As Object
Dim xCell As Range
Dim xRg As Range
Dim xEmailAddr As String
Dim xTxt As String
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xOTApp = CreateObject("Outlook.Application")
For Each xCell In xRg
If xCell.Value Like "*@*" Then
If xEmailAddr = "" Then
xEmailAddr = xCell.Value
Else
xEmailAddr = xEmailAddr & ";" & xCell.Value
End If
End If
Next
Set xMItem = xOTApp.CreateItem(0)
With xMItem
.To = xEmailAddr
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
.Display
End With
End Sub
3. tekan F5 kunci untuk menjalankan kode dan a Kutools for Excel kotak dialog muncul. Pilih daftar alamat email dan klik OK.
Catatan:
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
Setelah menjalankan kode, semua alamat email dalam rentang yang dipilih akan ditampilkan di bidang Ke pada jendela pesan. Lihat tangkapan layar:
1.2.2 Kirim email secara terpisah ke setiap penerima yang terdaftar di sel dengan skrip VBA
Kode di atas menambahkan semua alamat email dalam rentang yang dipilih ke bidang Ke pada jendela pesan. Jika Anda ingin mengirim email ke setiap alamat email yang tercantum dalam sel secara terpisah tanpa membiarkan mereka melihat alamat email satu sama lain, Anda dapat mencoba skrip VBA berikut.
1. Di lembar kerja yang berisi semua alamat email yang ingin Anda kirimi email. tekan lain + F11 kunci untuk buka jendela Microsoft Visual Basic for Applications.
2. Dalam Microsoft Visual Basic untuk Aplikasi window, klik Menyisipkan > Modul, lalu tempel kode berikut ke jendela Modul (Kode).
Kode VBA: Kirim email ke setiap alamat email yang tercantum dalam sel secara terpisah
Sub SendEmailToAddressInCells()
'Updated by Extendoffice 20220802
Dim xRg As Range
Dim xRgEach As Range
Dim xRgVal As String
Dim xAddress As String
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the addresses list", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xRg = xRg.SpecialCells(xlCellTypeConstants, xlTextValues)
For Each xRgEach In xRg
xRgVal = xRgEach.Value
If xRgVal Like "?*@?*.?*" Then
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.To = xRgVal
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
.Display
'.Send
End With
End If
Next
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
3. Lalu klik Tools > Referensi. Dalam majalah Referensi - VBAProject kotak dialog, temukan dan centang Perpustakaan Objek Microsoft Outlook 16.0 kotak dan kemudian klik OK Tombol untuk menyimpan perubahan.
4. tekan F5 kunci untuk menjalankan kode dan a Kutools for Excel kotak dialog muncul. Pilih daftar alamat email dan klik OK.
Catatan:
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
Dalam contoh ini, ada enam alamat email dalam rentang yang dipilih, jadi enam jendela pesan Outlook akan dibuat secara otomatis dengan alamat email terpisah yang tercantum di bidang Kepada seperti yang ditunjukkan pada gambar di bawah.
5. Terakhir, klik Kirim tombol untuk mengirim email satu per satu.
2. Sisipkan lampiran atau tanda tangan Outlook di email yang dikirim dari Excel (dengan skrip VBA)
Bagian ini akan menunjukkan cara menyisipkan lampiran atau tanda tangan default Outlook dalam email yang dikirim dari Excel.
2.1 Sisipkan lampiran dalam email yang dikirim dari Excel
Di sini kami menjelaskan berbagai kasus penyisipan lampiran, dan Anda dapat memilih metode sesuai dengan kebutuhan Anda. Di bagian ini, Anda dapat mempelajari (klik salah satu tautan berikut untuk menavigasi ke metode yang sesuai):
2.1.1 Email file tertentu sebagai lampiran
Anda dapat menerapkan kode VBA berikut ke email satu atau beberapa file dalam folder sebagai lampiran dari Excel.
1. tekan lain + F11 kunci.
2. Dalam pembukaan Microsoft Visual Basic untuk Aplikasi window, klik Menyisipkan > Modul. Kemudian paste kode VBA berikut ke jendela Module (Code).
Kode VBA: Email file dalam folder sebagai lampiran dari Excel
Sub EmailWithAttachments()
'Updated by Extendoffice 20220802
Dim xStrFile As String
Dim xFilePath As String
Dim xFileDlg As FileDialog
Dim xFileDlgItem As Variant
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
If xFileDlg.Show = -1 Then
With xMailOut
.BodyFormat = olFormatRichText
.To = ""
.Subject = "test"
.HTMLBody = "test"
For Each xFileDlgItem In xFileDlg.SelectedItems
.Attachments.Add xFileDlgItem
Next xFileDlgItem
.Display
End With
End If
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
Catatan:
3. Lalu klik Tools > Referensi. Dalam majalah Referensi - VBAProject kotak dialog, temukan dan centang Perpustakaan Objek Microsoft Outlook 16.0 kotak dan kemudian klik OK Tombol untuk menyimpan perubahan.
4. tekan F5 kunci untuk menjalankan kode, lalu a Browse jendela muncul, pilih file yang perlu Anda lampirkan di email, lalu klik OK.
Kemudian jendela pesan muncul. Anda dapat melihat file yang dipilih ditampilkan sebagai lampiran di bidang Terlampir.
2.1.2 Email lembar kerja saat ini sebagai lampiran
Jika Anda ingin mengirimkan lembar kerja saat ini melalui email sebagai lampiran dari Excel, Anda dapat menerapkan skrip VBA di bagian ini.
1. tekan lain + F11 kunci.
2. Dalam pembukaan Microsoft Visual Basic untuk Aplikasi window, klik menyisipkan > Modul. Kemudian rekatkan kode VBA berikut ke dalam Modul (Kode) jendela.
Kode VBA: Email lembar kerja saat ini sebagai lampiran
Sub SendWorkSheet()
'Update by Extendoffice 20220802
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte features"
.Body = "Please check and read this document."
.Attachments.Add Wb2.FullName
.Display
'.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub
Catatan:
3. tekan F5 untuk menjalankan kode, maka lembar kerja saat ini disimpan sebagai buku kerja Excel dan secara otomatis dimasukkan ke dalam jendela pesan sebagai lampiran. Lihat tangkapan layar:
Catatan: Buku kerja terlampir yang hanya berisi lembar kerja saat ini memiliki nama yang sama dengan buku kerja asli. Dan waktu Anda menjalankan kode juga ditambahkan ke nama buku kerja.
2.1.3 Email buku kerja saat ini sebagai lampiran
Setelah mempelajari kode VBA untuk mengirim email ke lembar kerja saat ini sebagai lampiran dari Excel, di sini kami menyediakan skrip VBA lain untuk membantu Anda mengirim email ke seluruh buku kerja sebagai lampiran. Silakan lakukan sebagai berikut.
1. tekan lain + F11 kunci.
2. Dalam pembukaan Microsoft Visual Basic untuk Aplikasi window, klik Menyisipkan > Modul. Kemudian paste kode VBA berikut ke jendela Module (Code).
Kode VBA: Email buku kerja saat ini sebagai lampiran dari Excel
Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
Catatan:
3. tekan F5 untuk menjalankan kode, maka buku kerja saat ini dimasukkan ke dalam jendela pesan sebagai lampiran secara otomatis. Lihat tangkapan layar:
2.1.4 Email seluruh buku kerja sebagai lampiran PDF
Bagi kebanyakan orang, mereka cenderung menyimpan buku kerja Excel sebagai file PDF dan kemudian mengirimkannya sebagai lampiran ke orang lain. Di bagian ini, saya akan menunjukkan cara untuk mengirim email langsung dari Excel dengan buku kerja terbuka saat ini sebagai lampiran PDF tanpa harus menyimpan buku kerja secara manual sebagai file PDF.
1. tekan lain + F11 kunci.
2. Dalam pembukaan Microsoft Visual Basic untuk Aplikasi window, klik Menyisipkan > Modul. Kemudian paste kode VBA berikut ke jendela Module (Code).
Kode VBA: Email seluruh buku kerja sebagai lampiran PDF
Sub SendWorkBookAsPDF()
'Update 20220803
Dim Wb As Workbook
Dim FilePath As String
Dim FileName As String
Dim xOutApp As Object
Dim xOutMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) - 1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf"
FilePath = Environ$("temp") & "\" & FileName
Wb.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
FilePath, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
With xOutMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FilePath
.Display 'or use .Send
End With
Kill FilePath
Set xOutMail = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
Catatan:
3. tekan F5 kunci untuk menjalankan kode. Kemudian buku kerja saat ini secara otomatis dimasukkan ke dalam jendela pesan baru sebagai lampiran file PDF. Lihat tangkapan layar:
2.1.5 Email lembar kerja saat ini sebagai lampiran PDF
Misalnya, ada buku kerja bernama "Penjualan bulanan", dan Anda telah menyelesaikan tabel laporan penjualan di lembar kerja bernama "laporan penjualan" dan ingin mengirim lembar kerja ini sebagai file PDF ke rekan kerja Anda. Kode VBA berikut dapat membantu Anda.
1. tekan lain + F11 kunci.
2. Dalam pembukaan Microsoft Visual Basic untuk Aplikasi window, klik menyisipkan > Modul. Kemudian paste kode VBA berikut ke jendela Module (Code).
Kode VBA: Email lembar kerja saat ini sebagai lampiran PDF
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FileName
.Display
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
Catatan:
3. tekan F5 kunci untuk menjalankan kode. Kemudian lembar kerja saat ini secara otomatis dimasukkan ke dalam jendela pesan baru sebagai lampiran file PDF. Lihat tangkapan layar:
2.2 Sisipkan tanda tangan Outlook di email yang dikirim dari Excel
Ambil kasus di atas sebagai contoh, Anda menerapkan kode VBA di atas untuk mengirim lembar kerja saat ini sebagai lampiran file PDF dari Excel, tetapi tanda tangan Outlook tidak dapat ditambahkan ke jendela pesan. Untuk mempertahankan tanda tangan default Outlook dalam email yang dikirim dari Excel, metode berikut akan membantu.
Dua kode VBA tercantum di bawah ini.
Kode VBA 1: Kode membantu mempertahankan tanda tangan Outlook.
Kode VBA 2: Kode ini membantu mengirim email ke lembar kerja saat ini sebagai lampiran PDF.
Kode VBA 1: Pertahankan tanda tangan Outlook
.HTMLBody = "Email body" & "
" & .HTMLBody
Kode VBA 2: Email lembar kerja saat ini sebagai lampiran PDF
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FileName
.Display
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
1. Biasanya, Anda perlu menekan tombol lain + F11 kunci untuk membuka Microsoft Visual Basic untuk Aplikasi jendela.
2. Dalam Microsoft Visual Basic untuk Aplikasi window, klik Menyisipkan > Modul. Kemudian paste kode VBA 2 di atas pada jendela Module (Code).
3. Untuk mempertahankan tanda tangan default Outlook dalam email yang dikirim dari Excel, Anda perlu mengubah kode VBA 2 sebagai berikut:
Berikut kode lengkapnya setelah dimodifikasi.
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.Display
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.HTMLBody = "Email body" & "
" & .HTMLBody
.Attachments.Add FileName
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
4. tekan F5 kunci untuk menjalankan kode. Kemudian Anda akan mendapatkan jendela pesan baru dengan lembar kerja saat ini dilampirkan sebagai file PDF, sedangkan tanda tangan default Outlook akan dimasukkan di akhir badan email secara otomatis.
3. Secara otomatis mengirim email dari Excel saat kondisi terpenuhi (dengan skrip VBA)
Dalam contoh di atas, Anda perlu menjalankan kode secara manual untuk mencapai pengiriman email. Jika Anda ingin memicu kode secara otomatis saat kondisi tertentu terpenuhi, seperti saat sel mencapai nilai tertentu, saat nilai sel berubah, saat tanggal tercapai, dll., email akan dikirim secara otomatis. Bagian ini mencantumkan kondisi yang sering dicari pengguna Excel di Google untuk membantu Anda mengirim email dari Excel secara otomatis saat kondisi tertentu terpenuhi.
3.1 Secara otomatis mengirim email ketika sel mencapai nilai tertentu
Seperti yang ditunjukkan pada gambar di bawah, misalkan Anda memiliki tabel penjualan dengan sel D6 yang berisi total penjualan. Anda ingin secara otomatis mengirim email ke atasan Anda berdasarkan total penjualan, misalnya membuat atau mengirim email secara otomatis ketika total penjualan melebihi 10000 tetapi jika total penjualan sama atau kurang dari 10000, tidak ada tindakan yang diambil.
1. Di lembar kerja berisi tabel penjualan, klik kanan tab lembar dan klik Lihat kode dari menu klik kanan.
2. Dalam pembukaan Microsoft Visual Basic untuk Aplikasi jendela, rekatkan kode VBA berikut di Lembar (Kode) jendela.
Kode VBA: Secara otomatis mengirim email ketika sel mencapai nilai tertentu di Excel
Dim xRg As Range
'Update by Extendoffice 20200803
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set xRg = Intersect(Range("D6"), Target)
If xRg Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10000 Then
Call Mail_small_Text_Outlook
End If
End Sub
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
On Error Resume Next
With xOutMail
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "test"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub
Private Sub Worksheet_Calculate()
Dim xI As Integer
Dim xRg As Range
Set xRg = Range("D6")
On Error GoTo Err01
xI = Int(xRg.Value)
If xI > 10000 Then
Call Mail_small_Text_Outlook
End If
Err01:
End Sub
Catatan:
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
Mulai sekarang, ketika nilai di sel D6 melebihi 10000, email akan dibuat seperti yang ditunjukkan pada gambar di bawah.
3.2 Secara otomatis mengirim email ketika nilai sel berubah
Seperti yang ditunjukkan pada gambar di bawah, misalkan Anda menerima buku kerja yang berisi penjualan bulanan di lembar kerja yang berbeda dan total penjualan di lembar kerja. Anda perlu memverifikasi total penjualan dan jika total penjualan diubah, kirim buku kerja kembali ke pengirim dan beri tahu pengirim bahwa sel telah diubah.
1. Di lembar kerja berisi tabel penjualan, klik kanan tab lembar dan klik Lihat kode dari menu klik kanan.
2. Dalam pembukaan Microsoft Visual Basic untuk Aplikasi jendela, rekatkan kode VBA berikut di jendela Lembar (Kode).
Kode VBA: Secara otomatis mengirim email ketika nilai sel tertentu berubah
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220803
Dim xRgSel As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xMailBody As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xBoolean = False
Set xRg = Range("B14")
Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
Set xRgSel = xItsRG
xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
Set xRgSel = xDDs
xBoolean = True
ElseIf Not (xDs Is Nothing) Then
Set xRgSel = xDs
xBoolean = True
End If
ActiveWorkbook.Save
If xBoolean Then
Debug.Print xRgSel.Address
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "The cell " & xRgSel.Address(False, False) & _
" in the worksheet '" & Me.Name & "' were modified on " & _
Format$(Now, "mm/dd/yyyy") & " at " & Format$(Now, "hh:mm:ss") & _
" by " & Environ$("username") & "."
With xMailItem
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "Worksheet modified"
.Body = xMailBody
.Attachments.Add (ThisWorkbook.FullName)
.Display
End With
Set xRgSel = Nothing
Set xOutApp = Nothing
Set xMailItem = Nothing
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Catatan: Di dalam kode,
Mulai sekarang, ketika nilai di sel B14 berubah, pesan Outlook akan dibuat secara otomatis seperti yang ditunjukkan pada gambar di bawah.
3.3 Secara otomatis mengirim email saat buku kerja disimpan
Jika Anda memiliki buku kerja yang perlu dibagikan dengan orang lain setelah dimodifikasi, biasanya Anda perlu menyimpan buku kerja, meluncurkan klien email, membuat email baru dengan lampiran buku kerja ini, menulis bidang yang sesuai, lalu mengirim email. Bagian ini akan memperlihatkan kepada Anda metode untuk membuat email secara otomatis setiap kali Anda menyimpan buku kerja. Silakan lakukan sebagai berikut.
1. tekan lain + F11 kunci untuk membuka Microsoft Visual Basic untuk Aplikasi jendela.
2. Di jendela ini, klik dua kali Buku Kerja Ini dalam Project panel, lalu rekatkan kode VBA berikut di ThisWorkbook (Kode) jendela.
Kode VBA: Secara otomatis mengirim email saat buku kerja disimpan
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20220804
Dim xOutApp As Object
Dim xMailItem As Object
Dim xName As String
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xName = ActiveWorkbook.FullName
With xMailItem
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "The workbook has been updated"
.Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
.Attachments.Add xName
.Display
'.send
End With
Set xMailItem = Nothing
Set xOutApp = Nothing
End Sub
Catatan: Di dalam kode,
3. Mulai sekarang, saat menyimpan buku kerja dengan menekan tombol Ctrl + S tombol atau mengklik Save tombol, email Outlook akan dibuat secara otomatis. Anda bisa melihat bahwa buku kerja saat ini dilampirkan sebagai lampiran dan bidang diisi dengan konten yang ditentukan. Lihat tangkapan layar:
Tips: Jika Anda sering menggunakan buku kerja ini, di sini merekomendasikan Anda menyimpan buku kerja sebagai Buku Kerja Excel dengan Makro Aktif untuk menyimpan skrip VBA untuk digunakan di masa mendatang. Langkah-langkahnya adalah sebagai berikut.
3.4 Secara otomatis mengirim email pada waktu tertentu
Katakanlah Anda perlu mengirim email dengan buku kerja tugas tugas ke seseorang setiap Jumat pagi jam 9 pagi, dan ingin melakukannya secara otomatis di Excel tanpa harus mengoperasikan klien email secara manual. Bagian ini akan menunjukkan kepada Anda metode untuk menyelesaikannya.
1. tekan lain + F11 kunci untuk membuka Microsoft Visual Basic untuk Aplikasi jendela.
2. Dalam Microsoft Visual Basic untuk Aplikasi window, klik Menyisipkan > Modul. Kemudian tempel kode VBA berikut di jendela Modul.
VBA code1 : Email buku kerja saat ini sebagai lampiran dari Excel
Sub Timer()
If Weekday(Date) = vbFriday Then
SendWorkBook
Application.OnTime TimeValue("09:00:00"), "Timer"
Else
Application.OnTime TimeValue("09:00:00"), "Timer"
End If
End Sub
Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
3. Di jendela ini, klik dua kali Buku Kerja Ini dalam Project panel, lalu rekatkan kode VBA berikut di ThisWorkbook (Kode) jendela.
Kode VBA 2: Secara otomatis mengirim email pada waktu tertentu
Private Sub Workbook_Open()
Application.OnTime TimeValue("09:00:00"), "Timer"
End Sub
Catatan:
4. Simpan kode dan kemudian simpan buku kerja sebagai buku kerja Excel makro aktif sebagai berikut.
5. Buka buku kerja berkemampuan makro yang disimpan, lalu email akan dibuat atau dikirim secara otomatis saat hari dan waktu tiba.
4. Topik tambahan
Bagian ini mengumpulkan topik lain yang mungkin Anda temui saat mengirim email dari Excel.
4.1 Mengirim email ke berbagai sel dari Excel (dengan skrip VBA)
Misalkan ada tabel penjualan bulanan di lembar kerja Excel seperti yang ditunjukkan pada gambar di bawah, dan Anda perlu mengirim tabel penjualan bulanan ini kepada orang lain sebagai isi email atau sebagai lampiran secara langsung. Di sini kami memberi Anda dua metode untuk menyelesaikannya.
4.1.1 Email rentang sebagai bagian dari isi isi dari Excel
Anda dapat menjalankan kode VBA berikut untuk mengirim rentang sel sebagai bagian dari konten isi email dari Excel
1. tekan lain + F11 kunci untuk membuka Microsoft Visual Basic untuk Aplikasi jendela.
2. Dalam Microsoft Visual Basic untuk Aplikasi window, klik Tools > Referensi. Dan kemudian periksa Perpustakaan Objek Microsoft Outlook 16.0 kotak dan klik OK dalam Referensi - VBAProject kotak dialog.
3. klik Menyisipkan > Modul, lalu rekatkan kode VBA berikut di Modul (Kode) jendela.
Kode VBA: Kirim rentang sel sebagai bagian dari isi badan email dari Excel
Sub SendARangeofCells()
'Updated by Extendoffice 20220809
Dim xRg As Range
Dim I, J As Long
Dim xAddress As String
Dim xMailOut As Object
Dim xOutApp As Object
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Subject = "test"
.To = ""
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = RangetoHTML(xRg)
.Display
'.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
' The following VBA script is cited from this page:
' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
Dim fso As Object
Dim ts As Object
Dim TempFile As String
Dim TempWB As Workbook
TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
'Copy the range and create a new workbook to past the data in
rng.Copy
Set TempWB = Workbooks.Add(1)
With TempWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.DrawingObjects.Delete
On Error GoTo 0
End With
'Publish the sheet to a htm file
With TempWB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=TempFile, _
Sheet:=TempWB.Sheets(1).Name, _
Source:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
'Read all data from the htm file into RangetoHTML
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.ReadAll
ts.Close
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
"align=left x:publishsource=")
'Close TempWB
TempWB.Close savechanges:=False
'Delete the htm file we used in this function
Kill TempFile
Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function
Catatan: Di dalam kode,
4. tekan F5 kunci untuk menjalankan kode. Di pop up Kutools for Excel kotak dialog, pilih rentang sel yang perlu Anda kirim sebagai bagian dari konten isi email, lalu klik OK. Lihat tangkapan layar:
Kemudian email Outlook akan dibuat secara otomatis. Anda dapat melihat bahwa rentang yang Anda pilih di lembar kerja dimasukkan ke dalam badan email. Lihat tangkapan layar:
4.1.2 Email rentang sebagai lampiran dari Excel
Jika Anda perlu mengirim email ke berbagai sel dalam lembar kerja sebagai lampiran dari Excel. Anda dapat mencoba kode VBA berikut.
1. tekan lain + F11 kunci.
2. Dalam pembukaan Microsoft Visual Basic untuk Aplikasi window, klik Menyisipkan > Modul. Kemudian rekatkan kode VBA berikut di Modul (Kode) jendela.
Kode VBA: Email rentang sebagai lampiran dari Excel
Sub SendRange()
'Update 20220809
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = ""
.CC = "Email address"
.BCC = "Email address"
.Subject = "Monthly sales for 2021"
.Body = "Hello, please check and read this document. "
.Attachments.Add Wb2.FullName
.Display
'.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Catatan:
3. tekan F5 kunci untuk menjalankan kode. Di pop up Kutools for Excel kotak dialog, pilih rentang sel yang perlu Anda kirim sebagai lampiran dalam email, lalu klik OK. Lihat tangkapan layar:
Kemudian email Outlook akan dibuat secara otomatis. Dan rentang sel yang Anda pilih di lembar kerja disimpan sebagai buku kerja Excel dan dilampirkan di jendela Pesan. Lihat tangkapan layar:
4.2 Kirim email saat tombol diklik di Excel
Jika Anda perlu mengklik tombol perintah untuk memicu makro untuk mengirim email dari Excel, misalnya, kirim buku kerja saat ini sebagai lampiran ke orang lain dengan mengklik tombol perintah di lembar kerja. Anda dapat mengikuti langkah-langkah sebagai berikut untuk menyelesaikannya.
1. klik Pengembang > Menyisipkan > Tombol Perintah (Kontrol ActiveX). Kemudian gambar tombol perintah di lembar kerja.
Tips: Jika Anda sudah memiliki tombol perintah, lewati langkah ini.
2. tekan lain + F11 kunci untuk membuka Microsoft Visual Basic untuk Aplikasi jendela. Di jendela, klik Menyisipkan > Mode, lalu tempel kode VBA (kode yang digunakan untuk mengirim email ke buku kerja saat ini sebagai lampiran dari Excel) di jendela Modul (Kode).
Klik di sini untuk mendapatkan kode.
Note: Di sini nama makro yang Anda buat pada langkah 2 adalah Kirim Buku Kerja.
3. tekan lain + Q kunci untuk menutup Microsoft Visual Basic untuk Aplikasi jendela.
4. Sekarang Anda perlu menetapkan makro ke tombol perintah. Klik kanan tombol perintah, pilih Lihat kode dari menu klik kanan.
5. Kemudian Microsoft Visual Basic untuk Aplikasi jendela muncul, Anda dapat melihat dua baris berikut terdaftar di Lembar (Kode) jendela.
Private Sub CommandButton1_Click()
End Sub
6. Masukkan nama makro yang ada di dalam subprosedur untuk tombol perintah.
7. tekan lain + Q kunci untuk menutup Editor Visual Basic, Dan klik Pengembang > Mode Desain untuk mematikan mode desain.
Sekarang Anda dapat mengklik tombol perintah untuk mengirim email dengan buku kerja saat ini sebagai lampiran dalam email.
4.3 Kirim email dari akun email tertentu
Biasanya, saat meluncurkan email dari Excel dengan kode VBA, akun email pengirim adalah akun default di Outlook. Misalkan Anda telah mengonfigurasi beberapa akun email di Outlook Anda dan ingin menggunakan akun tertentu untuk mengirim email dari Excel alih-alih menggunakan akun default. Kode VBA berikut dapat membantu.
Kode berikut diperlukan dalam kasus ini.
Kode VBA 1:
Dim OutlookMail As Outlook.MailItem
Kode VBA 2:
For Each xAccount In OutlookApp.Session.Accounts
If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("") Then 'Specify your email account here
OutlookMail.SendUsingAccount = xAccount
End If
Next
Bagaimana cara menggunakan kode VBA di atas?
Dalam contoh ini, kita akan menentukan akun email tertentu untuk mengirim buku kerja saat ini sebagai lampiran dari Excel. Silakan lakukan sebagai berikut.
1. tekan lain + F11 kunci. Dalam Microsoft Visual Basic untuk Aplikasi window, klik Tools > Referensi. Dan kemudian periksa Perpustakaan Objek Microsoft Outlook 16.0 kotak dan klik OK dalam Referensi - VBAProject kotak dialog.
2. klik Menyisipkan > Modul. Kemudian rekatkan kode VBA berikut di Modul (Kode) jendela.
Kode VBA: Kirim buku kerja saat ini sebagai lampiran email dari Excel melalui akun Outlook tertentu
Sub SendWorkBook()
'Update by Extendoffice 20220809
Dim OutlookApp As Object
Dim OutlookMail As Outlook.MailItem 'important! Here can’t be declared as Object
Dim xAccount As Account
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(olMailItem)
On Error Resume Next
'The following lines helps to specify a certian email account
For Each xAccount In OutlookApp.Session.Accounts
If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("") Then 'Specify your email account here
OutlookMail.SendUsingAccount = xAccount
End If
Next
'End
With OutlookMail
.To = ""
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub
3. tekan F5 kunci untuk menjalankan kode. Kemudian pesan email Outlook muncul, Anda dapat melihat bahwa: Dari bidang diisi dengan akun email yang Anda tentukan dalam kode.
4.4 Kirim email saat tanggal tercapai
Jika Anda perlu mengirim email berdasarkan tanggal jatuh tempo tertentu, misalnya, seperti yang ditunjukkan pada gambar di bawah, ada tabel proyek, ketika tanggal jatuh tempo dalam rentang E2:E7 sama dengan atau kurang dari 7 hari dari hari ini (dengan asumsi tanggal saat ini adalah 2022/8/4), sebuah email akan dikirim secara otomatis ke pimpinan proyek terkait dan memberi tahu mereka bahwa proyek akan segera berakhir.
1. Di lembar kerja berisi tabel proyek, klik kanan tab lembar dan klik Lihat kode dari menu klik kanan.
2. Dalam pembukaan Microsoft Visual Basic untuk Aplikasi jendela, rekatkan kode VBA berikut di Lembar (Kode) jendela.
Kode VBA: Secara otomatis mengirim email ketika tanggal jatuh tempo terpenuhi
Public Sub SendMailDueDate()
'Updated by Extendoffice 20220804
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Range("E2:E7") 'Please reference the due date column range
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Range("C2:C7") 'Please reference the email addresses column range
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Range("D2:D7") 'Please reference the remark column range (the remark used to notify project leaders of the expiration of the project)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.Count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "
"
xMailBody = ""
xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Remark : " & xRgText.Offset(i - 1).Value & vbCrLf
xMailBody = xMailBody & ""
Set xMailItem = xOutApp.CreateItem(0)
With xMailItem
.Subject = xMailSubject
.To = xRgSendVal
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = xMailBody
.Display
'.Send
End With
Set xMailItem = Nothing
End If
End If
Next
Set xOutApp = Nothing
End Sub
Catatan: Di dalam kode,
3. tekan F5 kunci untuk menjalankan kode. Kemudian, jika tanggal kedaluwarsa sesuai dengan ketentuan, email yang sesuai akan dibuat. Dalam hal ini, dua email akan dibuat seperti yang ditunjukkan pada gambar di bawah.
5. Alat praktis untuk membantu Anda dengan mudah mengirim email dari Excel
Jika Anda seorang pemula VBA, metode di atas mungkin tidak mudah untuk Anda tangani. Di sini kami merekomendasikan Kutools for Excel'S Mengirim email fitur, dengan fitur ini, Anda dapat dengan mudah mengirim email dari Excel dengan beberapa klik saja. Silakan lakukan sebagai berikut.
Sebelum melamar Kutools for Excel, Mohon unduh dan instal terlebih dahulu.
5.1 Mudah membuat milis yang menyertakan bidang email yang Anda butuhkan
Sebelum menerapkan fitur Kirim Email, Anda perlu membuat milis yang berisi bidang email yang Anda butuhkan. Disini fitur Create Mailing List bisa membantu.
1. klik Kutools Ditambah > Buat Milis.
2. Dalam pembukaan Buat Milis jendela, Anda perlu mengkonfigurasi sebagai berikut.
Kemudian contoh tabel milis dibuat seperti yang ditunjukkan pada gambar di bawah.
3. Sekarang Anda perlu mengganti data asli dalam sampel dengan data lapangan Anda sendiri.
Sekarang Anda telah membuat tabel milis. Silakan lanjutkan untuk menerapkan Mengirim email fitur untuk mengirim email dari Excel berdasarkan bidang yang Anda buat.
Jika Anda ingin memiliki uji coba gratis (30-day) dari utilitas ini, silahkan klik untuk mendownloadnya, lalu lanjutkan untuk menerapkan operasi sesuai langkah di atas.
5.2 Mudah mengirim email termasuk bidang yang Anda buat di milis
Setelah membuat milis (klik untuk mengetahui caranya) yang berisi bidang yang mungkin Anda perlukan di email, kini Anda dapat mengirim email dari Excel dengan bidang ini.
1. Pilih seluruh milis, klik Kutools Ditambah > Mengirim email.
2. Dalam Mengirim email kotak dialog, silahkan lakukan konfigurasi berikut.
3. Kemudian a Kutools for Excel kotak dialog muncul untuk memberi tahu Anda berapa banyak email yang dikirim, klik OK tombol untuk menutup kotak dialog ini.
Tips: Anda bisa pergi ke Item terkirim folder di Outlook Anda untuk memeriksa email yang Anda kirim.
5.3 Mudah mengirim email dengan badan HTML (termasuk hyperlink, gambar, dll.)
Fitur Kirim Email ini memungkinkan Anda membuat email html, yang mencakup hyperlink, gambar, ukuran font dan warna font yang berbeda, dll.
Setelah membuat milis yang menyertakan bidang email yang Anda butuhkan,
Bila Anda konfigurasikan kotak dialog Kirim Email, Anda dapat membuat konten tubuh kaya dengan menggunakan opsi pada bilah alat.
Lihat tangkapan layar di bawah ini:
5.4 Masukkan tanda tangan default Outlook dengan mudah saat mengirim email
Dalam metode di atas, kami mendemonstrasikan kode VBA untuk membantu Anda mengirim email dengan tanda tangan default Outlook. Di sini dengan fitur Kirim Email, Anda hanya perlu mencentang opsi, maka tanda tangan default Outlook akan dimasukkan ke dalam email yang Anda kirim dari Excel.
Setelah membuat milis yang menyertakan bidang email yang Anda butuhkan,
Ketika konfigurasikan kotak dialog Kirim Email, Anda perlu mengklik Opsi > Gunakan pengaturan tanda tangan Outlook.
Note: Harap pastikan bahwa ada tanda centang yang ditampilkan sebelum opsi Gunakan pengaturan tanda tangan Outlook.
Saat penerima menerima email, mereka dapat melihat tanda tangan default Outlook ditampilkan di akhir badan email.
5.5 Mudah mengirim email dari akun email tertentu
Untuk menggunakan akun email tertentu untuk mengirim email dari Excel alih-alih menggunakan akun default, fitur Kirim Email juga dapat membantu menyelesaikannya dengan mudah.
Setelah membuat milis yang menyertakan bidang email yang Anda butuhkan,
Ketika konfigurasikan kotak dialog Kirim Email, Anda perlu mengklik Opsi > Dikirim dari, lalu klik akun email yang Anda butuhkan untuk mengirim email.
Note: Setelah memilih akun email, tanda centang akan ditampilkan sebelumnya.
Klik disini untuk mengetahui lebih lanjut tentang fitur Kirim Email ini.
Jika Anda ingin memiliki uji coba gratis (30-day) dari utilitas ini, silahkan klik untuk mendownloadnya, lalu lanjutkan untuk menerapkan operasi sesuai langkah di atas.
Kesimpulannya, mengirim email dari Excel cukup berguna dalam pekerjaan kita sehari-hari. Artikel ini mencakup topik pengiriman email yang lebih komprehensif dari Excel, jika ada topik lain atau solusi yang lebih mudah, silakan tinggalkan komentar untuk memberi tahu saya.
Alat Produktivitas Kantor Terbaik
Tingkatkan Keterampilan Excel Anda dengan Kutools for Excel, dan Rasakan Efisiensi yang Belum Pernah Ada Sebelumnya. Kutools for Excel Menawarkan Lebih dari 300 Fitur Canggih untuk Meningkatkan Produktivitas dan Menghemat Waktu. Klik Di Sini untuk Mendapatkan Fitur yang Paling Anda Butuhkan...
Office Tab Menghadirkan antarmuka Tab ke Office, dan Membuat Pekerjaan Anda Lebih Mudah
- Aktifkan pengeditan dan pembacaan tab di Word, Excel, PowerPoint, Publisher, Access, Visio, dan Project.
- Buka dan buat banyak dokumen di tab baru di jendela yang sama, bukan di jendela baru.
- Meningkatkan produktivitas Anda sebesar 50%, dan mengurangi ratusan klik mouse untuk Anda setiap hari!
