Tutorial do Excel – Enviar e-mails do Excel
Normalmente, usamos clientes de e-mail como Outlook, Gmail, etc. para enviar e-mails. Mas, muitas pessoas armazenam dados em pastas de trabalho do Excel e precisam enviar alguns dados para outras pessoas enquanto trabalham com eles. Portanto, eles precisam enviar emails diretamente da pasta de trabalho do Excel, o que economiza o tempo de operação de um cliente de email. Este tutorial passo a passo mostrará como enviar e-mails do Excel em diferentes condições.
Note: Antes de aplicar os métodos a seguir, você precisa configurar um cliente de email do Outlook em seu computador e defini-lo como seu cliente de email padrão.
Sumário: [ Esconder ]
1. Noções básicas de envio de e-mails do Excel
Esta seção apresenta as noções básicas de envio de e-mails do Excel.
1.1 Envie e-mails do Excel com funções integradas do Excel
Se você deseja apenas enviar e-mails simples do Excel, incluindo apenas os campos Para, Assunto, Cc e corpo. As funções internas do Excel podem ajudar.
1.1.1 Enviar e-mail do Excel com uma fórmula
Conforme mostrado na tabela abaixo, para enviar diferentes e-mails do Excel com base nos campos fornecidos, você pode usar as referências de célula dos campos fornecidos para criar diferentes fórmulas de hiperlink para fazer isso. Depois de criar os hiperlinks de e-mail, você pode clicar no hiperlink necessário para enviar um e-mail automaticamente.
Observação: Se houver mais de um destinatário nos campos Para ou Cc, separe-os com ponto e vírgula.
Esta seção é dividida em quatro partes para mostrar as etapas para adicionar endereço de e-mail, destinatário(s) Cc, linha de assunto e corpo do texto separadamente à fórmula do hiperlink. Por favor, faça o seguinte.
A sintaxe e os argumentos do HIPERLINK função são as seguintes.
Sintaxe
HYPERLINK(link_location, [friendly_name])
Argumentos
1.1.1.1 Adicionar endereço de e-mail à fórmula de hiperlink
Aqui usamos "mailto:" como parte da fórmula para adicionar um destinatário de email. Neste exemplo, o endereço de e-mail do primeiro destinatário está na célula B2, portanto, precisamos adicionar "mailto:" e referenciá-lo à célula B2.
“mailto:”&B2
1. Selecione uma célula para exibir o hiperlink. Neste caso, seleciono a célula F2.
2. Em seguida, insira a seguinte fórmula nele.
=HYPERLINK("mailto:"&B2)
Note: Se você pressionar o botão Entrar key, um hiperlink será criado conforme mostrado na captura de tela abaixo. Ao clicar no link, um e-mail do Outlook será criado e o endereço de e-mail do destinatário será preenchido automaticamente no campo Para.
O endereço de e-mail do destinatário agora é adicionado à fórmula de hiperlink. Continue com as etapas a seguir para adicionar a linha de assunto, o(s) destinatário(s) Cc e o corpo do texto conforme necessário.
1.1.1.2 Adicionar destinatário(s) Cc à fórmula de hiperlink
Para adicionar o(s) destinatário(s) Cc à função Hyperlink, adicione "?cc=" como parte da fórmula a seguir.
A fórmula na célula F2 deve ser a seguinte:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2)
1.1.1.3 Adicionar linha de assunto à fórmula de hiperlink
Para adicionar a linha de assunto à função Hyperlink, adicione "&assunto=" como parte da fórmula a seguir.
A fórmula na célula F2 agora deve ter a seguinte aparência:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2)
1.1.1.4 Adicionar corpo de texto com quebras de linha à fórmula de hiperlink
A última etapa é adicionar o corpo do texto à fórmula do hiperlink. Como você pode ver no exemplo, duas linhas de texto no E2 são separadas por uma quebra de linha e você deseja manter a quebra de linha no corpo do email. O Outlook reconhece a quebra de linha nesta circunstância? Vamos verificar.
Para adicionar o corpo do texto à fórmula do hiperlink, você precisa adicionar “&corpo=” como parte da fórmula a seguir.
A fórmula na célula F2 agora é exibida da seguinte forma:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2)
Observação: Se você pressionar o Entrar chave e clique no link. Você pode ver no novo email que o conteúdo do corpo do email é exibido na mesma linha.
Para exibir o corpo do email em linhas separadas, você precisa modificar o conteúdo da célula adicionando o código do caractere de retorno de carro % 0A ao texto onde você precisa inserir uma quebra de linha. Veja captura de tela:
1.1.1.5 Especifique o texto a ser exibido para o hiperlink
Nas etapas acima, finalizamos o argumento Link_location com campos de email. Aqui nesta seção, vamos terminar o próximo argumento [friendly_name].
Nesse caso, quero que a célula do hiperlink exiba o texto como “E-mail para xx”, onde xx é o nome do destinatário em A2. Assim, a fórmula em F2 deve ser alterada para:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2, "Email to "&A2)
Pressione o botão Entrar chave para obter o resultado.
Selecione esta célula de fórmula e arraste sua Identificador de preenchimento automático para baixo para criar outros hiperlinks de e-mail. Veja captura de tela:
1.1.2 Enviar e-mail do Excel com a função Hyperlink
Exceto para usar a fórmula de hiperlink acima, você pode criar manualmente um hiperlink de e-mail com o inserção Hyperlink função no Excel. Esta seção mostrará as etapas.
1. Clique com o botão direito do mouse em um e-mail no qual deseja inserir um hiperlink, selecione Ligação no menu do botão direito.
2. No popping up Insira o hyperlink caixa de diálogo, você precisa configurar da seguinte maneira.
Ao clicar no hiperlink, um e-mail do Outlook será criado com os campos Para, Assunto e Corpo especificados, conforme mostrado na captura de tela abaixo.
Notas:
1.2 Enviar email para vários destinatários em células com script VBA
No exemplo acima, você pode ver vários endereços de e-mail exibidos em uma célula, separados por ponto e vírgula. Se você tem uma lista de endereços de e-mail como mostrado na captura de tela abaixo e deseja enviar um e-mail ou e-mail independente para todos eles, o código VBA a seguir pode ser útil.
1.2.1 Envie um email para vários destinatários em células com script VBA
1. Na planilha que contém todos os endereços de e-mail para os quais você deseja enviar o e-mail. aperte o outro + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.
2. No Microsoft Visual Basic para Aplicações janela, clique em inserção > Módulo, e cole o seguinte código no Módulo (Código) janela.
Código VBA: Enviar e-mail para uma lista de endereços de e-mail
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. aperte o F5 chave para executar o código e um Kutools for Excel caixa de diálogo aparece. Selecione a lista de endereços de e-mail e clique em OK.
Observações:
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
Depois de executar o código, todos os endereços de e-mail no intervalo selecionado são exibidos no campo Para da janela de mensagem. Veja captura de tela:
1.2.2 Enviar emails separadamente para cada destinatário listado nas células com script VBA
O código acima adiciona todos os endereços de e-mail no intervalo selecionado ao campo Para da janela de mensagem. Se você deseja enviar emails para cada endereço de email listado nas células separadamente sem permitir que eles vejam os endereços de email uns dos outros, você pode tentar o seguinte script VBA.
1. Na planilha que contém todos os endereços de e-mail para os quais você deseja enviar os e-mails. aperte o outro + F11 chaves para abra a janela Microsoft Visual Basic for Applications.
2. No Microsoft Visual Basic para Aplicações janela, clique em inserção > Móduloe cole o código a seguir na janela Módulo (Código).
Código VBA: Envie emails para cada endereço de email listado nas células separadamente
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. Então clique Ferramentas > Referências. No Referências - VBAProject caixa de diálogo, localize e verifique o Biblioteca de objetos do Microsoft Outlook 16.0 caixa e, em seguida, clique no botão OK para salvar as alterações.
4. aperte o F5 chave para executar o código e um Kutools for Excel caixa de diálogo aparece. Selecione a lista de endereços de e-mail e clique em OK.
Observações:
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
Neste exemplo, há seis endereços de email no intervalo selecionado, portanto, seis janelas de mensagens do Outlook serão criadas automaticamente com endereços de email separados listados no campo Para, conforme mostrado na captura de tela abaixo.
5. Por fim, clique ENVIAR botão para enviar o e-mail um por um.
2. Insira anexos ou assinatura do Outlook nos e-mails enviados do Excel (com scripts VBA)
Esta seção mostrará como inserir anexos ou assinatura padrão do Outlook nos emails enviados do Excel.
2.1 Inserir anexos nos e-mails enviados do Excel
Aqui descrevemos os diferentes casos de inserção de anexos, e você pode escolher o método de acordo com suas necessidades. Nesta seção, você pode aprender a (clique em qualquer um dos links a seguir para navegar até o método correspondente):
2.1.1 Enviar um determinado arquivo como anexo
Você pode aplicar o seguinte código VBA para enviar por email um ou mais arquivos em uma pasta como anexos do Excel.
1. aperte o outro + F11 chaves.
2. Na abertura Microsoft Visual Basic para Aplicações janela, clique em inserção > Módulo. Em seguida, cole o seguinte código VBA na janela Módulo (Código).
Código VBA: Enviar arquivos de e-mail em uma pasta como anexos do 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
Notas:
3. Então clique Ferramentas > Referências. No Referências - VBAProject caixa de diálogo, localize e verifique o Biblioteca de objetos do Microsoft Outlook 16.0 caixa e, em seguida, clique no botão OK para salvar as alterações.
4. aperte o F5 para executar o código, então um Procurar janela pop-up, selecione os arquivos que você precisa anexar no e-mail e clique em OK.
Em seguida, uma janela de mensagem aparece. Você pode ver que os arquivos selecionados são exibidos como anexos no campo Anexado.
2.1.2 Envie por e-mail a planilha atual como um anexo
Se você quiser enviar a planilha atual como um anexo do Excel, poderá aplicar o script VBA nesta seção.
1. aperte o outro + F11 chaves.
2. Na abertura Microsoft Visual Basic para Aplicações janela, clique em inserir > Módulo. Em seguida, cole o seguinte código VBA no Módulo (Código) janela.
Código VBA: envie por e-mail a planilha atual como um anexo
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
Observações:
3. aperte o F5 key para executar o código, a planilha atual é salva como uma pasta de trabalho do Excel e inserida automaticamente em uma janela de mensagem como um anexo. Veja captura de tela:
Observação: A pasta de trabalho anexada que contém apenas a planilha atual tem o mesmo nome da pasta de trabalho original. E a hora em que você executa o código também é adicionada ao nome da pasta de trabalho.
2.1.3 Enviar por e-mail a pasta de trabalho atual como um anexo
Depois de aprender o código VBA para enviar a planilha atual como anexo do Excel, aqui fornecemos outro script VBA para ajudá-lo a enviar a pasta de trabalho inteira como anexo. Por favor, faça o seguinte.
1. aperte o outro + F11 chaves.
2. Na abertura Microsoft Visual Basic para Aplicações janela, clique em inserção > Módulo. Em seguida, cole o seguinte código VBA na janela Módulo (Código).
Código VBA: Envie por e-mail a pasta de trabalho atual como um anexo do 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
Observações:
3. aperte o F5 key para executar o código, a pasta de trabalho atual é inserida em uma janela de mensagem como um anexo automaticamente. Veja captura de tela:
2.1.4 Envie por e-mail a pasta de trabalho inteira como um anexo em PDF
Para a maioria das pessoas, eles tendem a salvar uma pasta de trabalho do Excel como um arquivo PDF e depois enviá-la como um anexo para outras pessoas. Nesta seção, mostrarei uma maneira de enviar e-mails diretamente do Excel com a pasta de trabalho aberta atual como um anexo em PDF sem precisar salvar manualmente a pasta de trabalho como um arquivo PDF.
1. aperte o outro + F11 chaves.
2. Na abertura Microsoft Visual Basic para Aplicações janela, clique em inserção > Módulo. Em seguida, cole o seguinte código VBA na janela Módulo (Código).
Código VBA: envie por e-mail a pasta de trabalho inteira como um anexo em 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
Observações:
3. aperte o F5 chave para executar o código. Em seguida, a pasta de trabalho atual é inserida automaticamente em uma nova janela de mensagem como um anexo de arquivo PDF. Veja captura de tela:
2.1.5 Envie por e-mail a planilha atual como um anexo em PDF
Por exemplo, há uma pasta de trabalho chamada “Vendas mensais” e você concluiu uma tabela de relatórios de vendas em uma planilha chamada “relatório de vendas” e deseja enviar esta planilha como um arquivo PDF para seus colegas. O seguinte código VBA pode lhe fazer um favor.
1. aperte o outro + F11 chaves.
2. Na abertura Microsoft Visual Basic para Aplicações janela, clique em inserir > Módulo. Em seguida, cole o seguinte código VBA na janela Módulo (Código).
Código VBA: envie por e-mail a planilha atual como um anexo em 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
Observações:
3. aperte o F5 chave para executar o código. Em seguida, a planilha atual é inserida automaticamente em uma nova janela de mensagem como um anexo de arquivo PDF. Veja captura de tela:
2.2 Inserir assinatura do Outlook nos emails enviados do Excel
Tome o caso acima como exemplo, você aplica o código VBA acima para enviar a planilha atual como um anexo de arquivo PDF do Excel, mas a assinatura do Outlook não pode ser adicionada à janela da mensagem. Para manter a assinatura padrão do Outlook no email enviado do Excel, o método a seguir ajudará.
Dois códigos VBA estão listados abaixo.
Código VBA 1: O código ajuda a reter a assinatura do Outlook.
Código VBA 2: O código ajuda a enviar por e-mail a planilha atual como um anexo em PDF.
Código VBA 1: reter a assinatura do Outlook
.HTMLBody = "Email body" & "
" & .HTMLBody
Código VBA 2: envie por e-mail a planilha atual como um anexo em 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. Normalmente, você precisa pressionar o botão outro + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.
2. No Microsoft Visual Basic para Aplicações janela, clique em inserção > Módulo. Em seguida, cole o código VBA 2 acima na janela Módulo (Código).
3. Para manter a assinatura padrão do Outlook no email enviado do Excel, você precisa modificar o código VBA 2 da seguinte forma:
Aqui está o código completo após a modificação.
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. aperte o F5 chave para executar o código. Em seguida, você receberá uma nova janela de mensagem com a planilha atual anexada como um arquivo PDF, enquanto a assinatura padrão do Outlook será inserida no final do corpo do email automaticamente.
3. Envie e-mails automaticamente do Excel quando uma condição for atendida (com scripts VBA)
Nos exemplos acima, você precisa executar o código manualmente para obter a entrega do email. Se você quiser acionar o código automaticamente quando uma determinada condição for atendida, como quando uma célula atingir um determinado valor, quando o valor de uma célula for alterado, quando uma data for atingida, etc., o e-mail será enviado automaticamente. Esta seção lista as condições que os usuários do Excel costumam pesquisar no Google para ajudá-lo a enviar e-mails automaticamente do Excel quando uma determinada condição for atendida.
3.1 Enviar um e-mail automaticamente quando uma célula atinge um determinado valor
Conforme mostrado na captura de tela abaixo, suponha que você tenha uma tabela de vendas com a célula D6 contendo o total de vendas. Você deseja enviar um e-mail automaticamente para seu chefe com base no total de vendas, por exemplo, criar ou enviar um e-mail automaticamente quando o total de vendas exceder 10000, mas se o total de vendas for igual ou inferior a 10000, nenhuma ação será tomada.
1. Na planilha que contém a tabela de vendas, clique com o botão direito na aba da planilha e clique em Ver código no menu do botão direito.
2. Na abertura Microsoft Visual Basic para Aplicações janela, cole o seguinte código VBA na Folha (Código) janela.
Código VBA: enviar um email automaticamente quando uma célula atinge um determinado valor no 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
Notas:
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
A partir de agora, quando o valor na célula D6 ultrapassar 10000, um email será criado conforme mostrado na captura de tela abaixo.
3.2 Enviar um e-mail automaticamente quando o valor de uma célula for alterado
Conforme mostrado na captura de tela abaixo, suponha que você receba uma pasta de trabalho que contenha vendas mensais em diferentes planilhas e o total de vendas em uma planilha. Você precisa verificar o total de vendas e se o total de vendas for modificado, enviar a pasta de trabalho de volta ao remetente e informar ao remetente que a célula foi modificada.
1. Na planilha que contém a tabela de vendas, clique com o botão direito na aba da planilha e clique em Ver código no menu do botão direito.
2. Na abertura Microsoft Visual Basic para Aplicações janela, cole o seguinte código VBA na janela Planilha (Código).
Código VBA: envie um email automaticamente quando um valor de célula especificado for alterado
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
Notas: No código,
A partir de agora, quando o valor na célula B14 for alterado, uma mensagem do Outlook será criada automaticamente, conforme mostrado na captura de tela abaixo.
3.3 Enviar um e-mail automaticamente quando uma pasta de trabalho é salva
Se você tiver uma pasta de trabalho que precisa ser compartilhada com outras pessoas após a modificação, normalmente você precisa salvar a pasta de trabalho, iniciar o cliente de email, criar um novo email com esta pasta de trabalho anexada, compor os campos correspondentes e enviar o email. Esta seção mostrará um método para criar um email automaticamente sempre que você salvar a pasta de trabalho. Por favor, faça o seguinte.
1. aperte o outro + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.
2. Nesta janela, clique duas vezes Esta pasta de trabalho no Projeto painel e cole o seguinte código VBA no Esta Pasta de Trabalho (Código) janela.
Código VBA: enviar um email automaticamente quando uma pasta de trabalho é salva
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
Notas: No código,
3. A partir de agora, ao salvar a pasta de trabalho pressionando o Ctrl + S teclas ou clicando no Salvar botão, um e-mail do Outlook será criado automaticamente. Você pode ver que a pasta de trabalho atual está anexada como um anexo e os campos são preenchidos com o conteúdo especificado. Veja captura de tela:
Tips: Se você usa esta pasta de trabalho com frequência, aqui recomendamos que você salve a pasta de trabalho como um Pasta de trabalho habilitada para macro do Excel para salvar o script VBA para uso futuro. Os passos são os seguintes.
3.4 Enviar um e-mail automaticamente em um horário específico
Digamos que você precise enviar um email com uma pasta de trabalho de atribuição de tarefas para alguém todas as sextas-feiras às 9h, e deseja fazer isso automaticamente no Excel sem precisar operar manualmente o cliente de e-mail. Esta seção mostrará o método para fazê-lo.
1. aperte o outro + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.
2. No Microsoft Visual Basic para Aplicações janela, clique em inserção > Módulo. Em seguida, cole o seguinte código VBA na janela Módulo.
Código VBA1 : Envie por e-mail a pasta de trabalho atual como um anexo do 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. Nesta janela, clique duas vezes Esta pasta de trabalho no Projeto painel e cole o seguinte código VBA no Esta Pasta de Trabalho (Código) janela.
Código VBA 2: enviar um e-mail automaticamente em um horário específico
Private Sub Workbook_Open()
Application.OnTime TimeValue("09:00:00"), "Timer"
End Sub
Notas:
4. Salve os códigos e salve a pasta de trabalho como uma pasta de trabalho habilitada para macro do Excel da seguinte maneira.
5. Abra sua pasta de trabalho habilitada para macro salva, então um e-mail será criado ou enviado automaticamente quando o dia e a hora chegarem.
4. Tópicos adicionais
Esta seção coleta outros tópicos que você pode encontrar ao enviar emails do Excel.
4.1 Enviar por e-mail um intervalo de células do Excel (com script VBA)
Supondo que haja uma tabela de vendas mensal em uma planilha do Excel, conforme mostrado na captura de tela abaixo, e você precise enviar essa tabela de vendas mensal para outras pessoas como o conteúdo do corpo de um email ou como um anexo diretamente. Aqui nós fornecemos dois métodos para fazê-lo.
4.1.1 Enviar um intervalo por e-mail como parte do conteúdo do corpo do Excel
Você pode executar o seguinte código VBA para enviar um intervalo de células como parte do conteúdo do corpo do email do Excel
1. aperte o outro + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.
2. No Microsoft Visual Basic para Aplicações janela, clique em Ferramentas > Referências. E então verifique o Biblioteca de objetos do Microsoft Outlook 16.0 caixa e clique OK no Referências - VBAProject caixa de diálogo.
3. Clique inserção > Módulo, cole o seguinte código VBA no Módulo (Código) janela.
Código VBA: envie um intervalo de células como parte do conteúdo do corpo do email do 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
Notas: No código,
4. aperte o F5 chave para executar o código. No apareceu Kutools for Excel caixa de diálogo, selecione o intervalo de células que você precisa enviar como parte do conteúdo do corpo do e-mail e clique em OK. Veja a imagem:
Em seguida, um e-mail do Outlook será criado automaticamente. Você pode ver que o intervalo selecionado na planilha está inserido no corpo do email. Veja captura de tela:
4.1.2 Enviar por e-mail um intervalo como anexo do Excel
Se você precisar enviar por email um intervalo de células em uma planilha como um anexo do Excel. Você pode tentar o seguinte código VBA.
1. aperte o outro + F11 chaves.
2. Na abertura Microsoft Visual Basic para Aplicações janela, clique em inserção > Módulo. Em seguida, cole o seguinte código VBA no Módulo (Código) janela.
Código VBA: Enviar um intervalo por e-mail como anexo do 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
Notas:
3. aperte o F5 chave para executar o código. No apareceu Kutools for Excel caixa de diálogo, selecione o intervalo de células que você precisa enviar como anexo em um email e clique em OK. Veja a imagem:
Em seguida, um e-mail do Outlook será criado automaticamente. E o intervalo de células selecionado na planilha é salvo como uma pasta de trabalho do Excel e anexado na janela Mensagem. Veja captura de tela:
4.2 Enviar e-mails quando um botão é clicado no Excel
Se você precisar clicar em um botão de comando para acionar uma macro para enviar um email do Excel, por exemplo, envie a pasta de trabalho atual como um anexo para outras pessoas clicando em um botão de comando na planilha. Você pode seguir os passos a seguir para fazê-lo.
1. Clique Developer > inserção > Botão de comando (controle ActiveX). Em seguida, desenhe um botão de comando na planilha.
Tips: se você já tiver um botão de comando, ignore esta etapa.
2. aperte o outro + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela. Na janela, clique em inserção > Modo, cole o código VBA (o código usado para enviar por email a pasta de trabalho atual como um anexo do Excel) na janela Módulo (Código).
Clique aqui para obter o código.
Note: Aqui o nome da macro que você criou na etapa 2 é Enviar pasta de trabalho.
3. aperte o outro + Q chaves para fechar o Microsoft Visual Basic para Aplicações janela.
4. Agora você precisa atribuir a macro ao botão de comando. Clique com o botão direito do mouse no botão de comando, selecione Ver código no menu do botão direito do mouse.
5. Então o Microsoft Visual Basic para Aplicações janela aparece, você pode ver as duas linhas a seguir listadas na Folha (Código) janela.
Private Sub CommandButton1_Click()
End Sub
6. Digite o nome da macro existente dentro do subprocedimento do botão de comando.
7. aperte o outro + Q chaves para fechar o Editor Visual BasicE clique Developer > Modo de design para desligar o modo de desenho.
Agora você pode clicar no botão de comando para enviar um email com a pasta de trabalho atual como um anexo no email.
4.3 Enviar e-mails de uma conta de e-mail especificada
Normalmente, ao iniciar um email do Excel com código VBA, a conta de email do remetente é a conta padrão no Outlook. Suponha que você tenha configurado várias contas de e-mail no Outlook e queira usar uma determinada conta para enviar os e-mails do Excel em vez de usar a conta padrão. O seguinte código VBA pode ajudar.
Os seguintes códigos são necessários neste caso.
Código VBA 1:
Dim OutlookMail As Outlook.MailItem
Código 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
Como usar o código VBA acima?
Neste exemplo, vamos especificar uma determinada conta de email para enviar a pasta de trabalho atual como um anexo do Excel. Por favor, faça o seguinte.
1. aperte o outro + F11 chaves. No Microsoft Visual Basic para Aplicações janela, clique em Ferramentas > Referências. E então verifique o Biblioteca de objetos do Microsoft Outlook 16.0 caixa e clique OK no Referências - VBAProject caixa de diálogo.
2. Clique inserção > Módulo. Em seguida, cole o seguinte código VBA no Módulo (Código) janela.
Código VBA: envie a pasta de trabalho atual como um anexo de email do Excel por meio de uma conta do Outlook especificada
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. aperte o F5 chave para executar o código. Em seguida, uma mensagem de e-mail do Outlook aparece, você pode ver que o De campo é preenchido com a conta de e-mail que você especificou no código.
4.4 Envie um e-mail quando uma data chegar
Se você precisar enviar um e-mail com base em uma data de vencimento específica, por exemplo, conforme mostrado na captura de tela abaixo, há uma tabela de projetos, quando a data de vencimento no intervalo E2:E7 for igual ou inferior a 7 dias a partir de hoje (assumindo que a data atual é 2022/8/4), um e-mail será enviado automaticamente aos líderes de projeto correspondentes e os notificará de que o projeto está prestes a expirar.
1. Na planilha contém a tabela do projeto, clique com o botão direito na guia da planilha e clique em Ver código no menu do botão direito.
2. Na abertura Microsoft Visual Basic para Aplicações janela, cole o seguinte código VBA na Folha (Código) janela.
Código VBA: envie um e-mail automaticamente quando uma data de vencimento for cumprida
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
Notas: No código,
3. aperte o F5 chave para executar o código. Então, se a data de expiração corresponder às condições, o email correspondente será criado. Nesse caso, dois e-mails serão criados conforme mostrado na captura de tela abaixo.
5. Uma ferramenta útil para ajudá-lo a enviar e-mails facilmente do Excel
Se você é um novato em VBA, os métodos acima podem não ser fáceis de manusear. Aqui recomendamos Kutools for Excel'S Mande emails recurso, com esse recurso, você pode enviar facilmente e-mails do Excel com apenas vários cliques. Por favor, faça o seguinte.
Antes de aplicar Kutools for Excel, Por favor baixe e instale primeiro.
5.1 Crie facilmente uma lista de e-mails que inclua os campos de e-mail necessários
Antes de aplicar o recurso Enviar e-mails, você precisa criar uma lista de e-mails que contenha os campos de e-mail necessários. Aqui o recurso Criar lista de discussão pode ajudar.
1. Clique Kutools Plus > Criar lista de discussão.
2. Na abertura Criar lista de discussão janela, você precisa configurar da seguinte forma.
Em seguida, uma tabela de lista de discussão de amostra é criada conforme mostrado na captura de tela abaixo.
3. Agora você precisa substituir os dados originais na amostra pelos seus próprios dados de campo.
Agora você criou uma tabela de lista de discussão. Por favor, vá em frente para aplicar o Mande emails recurso para enviar e-mails do Excel com base nos campos que você criou.
Se você quiser ter um teste gratuito (30 dias) deste utilitário, por favor clique para fazer o downloade, em seguida, aplique a operação de acordo com as etapas acima.
5.2 Envie e-mails facilmente, incluindo os campos que você criou na lista de e-mails
Depois de criar a lista de discussão (clique para saber como) que contém os campos que você pode precisar em seus emails, agora você pode enviar emails do Excel com esses campos.
1. Selecione toda a lista de discussão, clique em Kutools Plus > Mande emails.
2. No Mande emails caixa de diálogo, faça a seguinte configuração.
3. Então um Kutools for Excel caixa de diálogo aparece para informar quantos e-mails são enviados, clique no OK para fechar esta caixa de diálogo.
Tips: Você pode ir para o Itens enviados pasta no seu Outlook para verificar os e-mails que você enviou.
5.3 Envie e-mails facilmente com corpo HTML (incluindo hiperlink, imagem, etc.)
Este recurso de envio de e-mails permite que você crie um e-mail html, que inclui hiperlink, imagem, diferentes tamanhos de fonte e cores de fonte, etc.
Depois de criando uma lista de e-mail que inclui os campos de e-mail que você precisa,
Quando você configurar a caixa de diálogo Enviar e-mails, você pode tornar o conteúdo do corpo rico usando as opções da barra de ferramentas.
Veja a imagem abaixo:
5.4 Insira facilmente a assinatura padrão do Outlook ao enviar e-mails
No método acima, demonstramos um código VBA para ajudá-lo a enviar emails com a assinatura padrão do Outlook. Aqui com o recurso Enviar e-mails, você só precisa marcar uma opção, então a assinatura padrão do Outlook será inserida nos e-mails que você enviou do Excel.
Depois de criando uma lista de e-mail que inclui os campos de e-mail que você precisa,
Quando configurar a caixa de diálogo Enviar e-mails, você precisa clicar Opções > Use as configurações de assinatura do Outlook.
Note: Verifique se há uma marca de seleção exibida antes da opção Usar as configurações de assinatura do Outlook.
Quando os destinatários recebem o email, eles podem ver a assinatura padrão do Outlook exibida no final do corpo do email.
5.5 Envie e-mails facilmente de uma conta de e-mail especificada
Para usar uma determinada conta de e-mail para enviar os e-mails do Excel em vez de usar a conta padrão, o recurso Enviar e-mails também pode ajudar a fazer isso facilmente.
Depois de criando uma lista de e-mail que inclui os campos de e-mail que você precisa,
Quando configurar a caixa de diálogo Enviar e-mails, você precisa clicar Opções > Enviado dee clique na conta de e-mail da qual você deseja enviar e-mails.
Note: Depois de selecionar a conta de e-mail, uma marca de seleção será exibida antes dela.
Clique SUA PARTICIPAÇÃO FAZ A DIFERENÇA para saber mais sobre este recurso Enviar e-mails.
Se você quiser ter um teste gratuito (30 dias) deste utilitário, por favor clique para fazer o downloade, em seguida, aplique a operação de acordo com as etapas acima.
Concluindo, enviar e-mails do Excel é bastante útil em nosso trabalho diário. Este artigo aborda tópicos mais abrangentes de envio de emails do Excel, se houver outros tópicos ou soluções mais fáceis, deixe um comentário para me informar.
Melhores ferramentas de produtividade de escritório
Aprimore suas habilidades de Excel com o Kutools para Excel e experimente uma eficiência como nunca antes. Kutools para Excel oferece mais de 300 recursos avançados para aumentar a produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
Office Tab traz interface com guias para o Office e torna seu trabalho muito mais fácil
- Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
- Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!