Skip to main content

Tutorial do Excel – Enviar e-mails a partir do Excel

Author: Siluvia Last Modified: 2025-08-06

Normalmente, utilizamos clientes de e-mail como Outlook, Gmail, etc. para enviar e-mails. No entanto, muitas pessoas armazenam dados em workbooks do Excel e precisam compartilhar esses dados enquanto trabalham. Por isso, é útil enviar e-mails diretamente do workbook do Excel, economizando tempo ao evitar o uso do cliente de e-mail. Este tutorial passo a passo mostra como enviar e-mails a partir do Excel em diferentes situações.

Observação: Antes de aplicar os métodos a seguir, é necessário configurar um cliente de e-mail Outlook em seu computador e defini-lo como seu cliente de e-mail padrão.

 Índice: [ Ocultar ]

(Clique em qualquer título no índice abaixo ou à direita para ir diretamente ao capítulo correspondente.)

1. O básico sobre envio de e-mails a partir do Excel

Esta seção apresenta os conceitos básicos sobre envio de e-mails a partir do Excel.

1.1 Enviar e-mails do Excel com funções nativas do Excel

Se você deseja apenas enviar e-mails simples a partir do Excel, incluindo apenas os campos Para, Assunto, Cc e corpo, as funções nativas do Excel podem ajudar.


1.1.1 Enviar e-mail do Excel utilizando uma fórmula

Como mostrado na tabela abaixo, para enviar diferentes e-mails do Excel com base nos campos fornecidos, você pode usar referências de células desses campos para criar diferentes fórmulas de Hiperlink. Após criar os hiperlinks de e-mail, basta clicar no hiperlink desejado para que o e-mail seja criado 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 está dividida em quatro partes para mostrar os passos de como adicionar endereço de e-mail, destinatário(s) em Cc, linha de assunto e corpo do texto separadamente à fórmula de Hiperlink. Siga as instruções abaixo.

A sintaxe e os argumentos da função "HYPERLINK" são os seguintes.

Sintaxe

HYPERLINK(link_location, [friendly_name])

Argumentos

"Link_location" (obrigatório): O caminho e nome do arquivo do documento a ser aberto;
Dica: Neste tutorial, todos os campos necessários para um e-mail, como endereço do destinatário, destinatário(s) em Cc, linha de assunto e corpo do texto, devem ser inseridos no primeiro argumento "link_location".
"Friendly_name" (opcional): O valor exibido na célula como texto do link.

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 e-mail. Neste exemplo, o endereço do primeiro destinatário está na célula B2, então precisamos adicionar "mailto:" e referenciar a célula B2.

“mailto:”&B2

1. Selecione uma célula para exibir o hiperlink. Neste caso, selecionei a célula F2.

2. Em seguida, insira a fórmula abaixo na célula.

=HYPERLINK("mailto:"&B2)

Observação: Ao pressionar a tecla "Enter", um hiperlink será criado conforme mostrado na imagem abaixo. Ao clicar no link, um e-mail do Outlook será criado e o endereço do destinatário será preenchido automaticamente no campo Para.

O endereço de e-mail do destinatário agora foi adicionado à fórmula de Hiperlink. Continue com os próximos passos para adicionar a linha de assunto, destinatário(s) em Cc e corpo do texto conforme necessário.


1.1.1.2 Adicionar destinatário(s) em Cc à fórmula de Hiperlink

Para adicionar destinatário(s) em Cc à função Hiperlink, adicione "?cc=" como parte da fórmula, conforme exemplo abaixo.

"?cc=" & C2
onde C2 contém o endereço de e-mail do destinatário em Cc.

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 Hiperlink, adicione "&subject=" como parte da fórmula, conforme exemplo abaixo.

"&subject="& D2
onde D2 contém o assunto do e-mail.

A fórmula na célula F2 agora deve ficar assim:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2)


1.1.1.4 Adicionar texto do corpo com quebras de linha à fórmula de Hiperlink

O último passo é adicionar o corpo do texto à fórmula de Hiperlink. No exemplo, duas linhas de texto em E2 estão separadas por uma quebra de linha, e você deseja manter essa quebra no corpo do e-mail. O Outlook reconhece a quebra de linha nesse caso? Vamos conferir.

Para adicionar o corpo do texto à fórmula de Hiperlink, adicione “&body=" como parte da fórmula, conforme exemplo abaixo.

"&body="& E2
onde E2 contém o corpo do texto do e-mail.

A fórmula na célula F2 agora é exibida assim:

=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2)

Observação: Se você pressionar a tecla "Enter" e clicar no link, verá que o conteúdo do corpo do e-mail aparece em uma única linha.

Para exibir o corpo do e-mail em linhas separadas, é necessário modificar o conteúdo da célula adicionando o código de caractere de retorno de carro "%0A" no texto onde deseja inserir a quebra de linha. Veja a imagem:


1.1.1.5 Especificar o texto a ser exibido para o hiperlink

Nos passos acima, finalizamos o argumento Link_location com os campos do e-mail. Nesta seção, vamos finalizar o próximo argumento [friendly_name].

Neste caso, quero que a célula do hiperlink exiba o texto “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 a tecla "Enter" para obter o resultado.

Selecione esta célula com a fórmula e arraste a "Alça de Preenchimento Automático" para baixo para criar outros hiperlinks de e-mail. Veja a imagem:


1.1.2 Enviar e-mail do Excel com a função Hiperlink

Além de usar a fórmula de Hiperlink acima, você pode criar manualmente um hiperlink de e-mail com a função "Inserir Hiperlink" no Excel. Veja os passos a seguir.

1. Clique com o botão direito no e-mail onde deseja inserir um hiperlink e selecione "Vincular" no menu de contexto.

2. Na caixa de diálogo "Inserir Hiperlink" que aparece, configure conforme abaixo.

2.1) Selecione "Endereço de E-mail" no painel à esquerda.
2.2) No campo "Texto para exibir", digite o texto que deseja mostrar na célula;
Dica: Não é possível usar referências de células nesta caixa de diálogo, então digite manualmente os campos do e-mail conforme abaixo.
2.3) No campo "Endereço de e-mail", digite os endereços de e-mail conforme necessário.
mailto:endereço de e-mail
Substitua o texto “endereço de e-mail” pelo seu endereço real. Se houver mais de um endereço, separe-os por ponto e vírgula.
2.4) No campo "Assunto", você pode especificar o assunto e o corpo do e-mail aqui mesmo. Configure conforme abaixo:
Assunto do e-mail&body=Corpo do e-mail
Neste caso, digitei "Venda mensal&body=Olá,%0AEmail recebido".
onde o assunto é Venda mensal;
e
o corpo do e-mail é:
Olá,
E-mail recebido. ("%0A" é o código de caractere de retorno de carro reconhecido pelo Outlook)
2.5) Clique no botão "OK" para salvar o hiperlink. Veja a imagem:

Ao clicar no hiperlink, um e-mail do Outlook será criado com os campos Para, Assunto e Corpo preenchidos conforme mostrado na imagem abaixo.

Observações:

1) Com este método, é necessário criar cada hiperlink de e-mail manualmente.
2) Não é possível adicionar o campo Cc aos e-mails por este método. Portanto, se precisar do campo Cc, adicione-o na nova janela de e-mail que se abrir.

1.2 Enviar e-mail para múltiplos destinatários em células com script VBA

No exemplo acima, é possível ver vários endereços de e-mail em uma célula, separados por ponto e vírgula. Se você tiver uma lista de endereços de e-mail como mostrado na imagem abaixo e quiser enviar um e-mail ou e-mails individuais para todos, o código VBA a seguir pode ajudar.


1.2.1 Enviar um e-mail para múltiplos destinatários em células com script VBA

1. Na planilha que contém todos os endereços de e-mail para os quais deseja enviar o e-mail, pressione as teclas "Alt" + "F11" para abrir a janela "Microsoft Visual Basic for Applications".

2. Na janela "Microsoft Visual Basic for Applications", clique em "Inserir" > "Módulo" e cole o código abaixo na janela "Módulo (Código)".

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. Pressione a tecla "F5" para executar o código e uma caixa de diálogo "Kutools para Excel" será exibida. Selecione a lista de endereços de e-mail e clique em "OK".

A screenshot of the 'Kutools for Excel' dialog box asking for the email addresses list

Observações:

1) Se não quiser que a caixa de diálogo acima apareça e deseja especificar o intervalo de endereços de e-mail diretamente no código, substitua esta linha:
Set xRg = Application.InputBox("Por favor, selecione a lista de endereços:", "Kutools para Excel", xTxt, , , , ,8)
por
Set xRg = Range("A2:A7")
2) Você pode especificar o assunto e o corpo do e-mail nas linhas a seguir:
.Subject = "Teste"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) Para enviar o e-mail diretamente sem abrir a janela de nova mensagem, substitua esta linha:
.Display
por
.Send

Após executar o código, todos os endereços de e-mail no intervalo selecionado serão exibidos no campo Para da janela de mensagem. Veja a imagem:

A screenshot of the email message window with all email addresses filled in the To field


1.2.2 Enviar e-mails separadamente para cada destinatário listado em células com script VBA

O código acima adiciona todos os endereços de e-mail do intervalo selecionado ao campo Para da janela de mensagem. Se você quiser enviar e-mails separadamente para cada endereço listado nas células, sem que os destinatários vejam os endereços uns dos outros, utilize o script VBA a seguir.

1. Na planilha que contém todos os endereços de e-mail para os quais deseja enviar os e-mails, pressione as teclas "Alt" + "F11" para abrir a janela "Microsoft Visual Basic for Applications".

2. Na janela "Microsoft Visual Basic for Applications", clique em "Inserir" > "Módulo" e cole o código abaixo na janela "Módulo (Código)".

Código VBA: Enviar e-mails separadamente para cada endereço listado em células

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. Em seguida, clique em "Ferramentas" > "Referências". Na caixa de diálogo "Referências – VBAProject", localize e marque a opção "Microsoft Outlook16.0 Object Library" e clique em "OK" para salvar as alterações.

A screenshot of the 'References – VBAProject' dialog box in Excel with the Microsoft Outlook 16.0 Object Library option selected

4. Pressione a tecla "F5" para executar o código e uma caixa de diálogo "Kutools para Excel" será exibida. Selecione a lista de endereços de e-mail e clique em "OK".

A screenshot of the 'Kutools for Excel' dialog box asking for the email address list selection

Observações:

1) Se não quiser que a caixa de diálogo acima apareça e deseja especificar o intervalo de endereços de e-mail diretamente no código, substitua esta linha:
Set xRg = Application.InputBox("Por favor, selecione a lista de endereços:", "Kutools para Excel", xTxt, , , , ,8)
por
Set xRg = Range("A2:A7")
2) Você pode especificar o assunto e o corpo do e-mail nas linhas a seguir:
.Subject = "Test"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) Para enviar o e-mail diretamente sem abrir as janelas de mensagem, substitua esta linha:
.Display
por
.Send

Neste exemplo, há seis endereços de e-mail no intervalo selecionado, portanto, seis janelas de mensagem do Outlook serão criadas automaticamente, cada uma com um endereço de e-mail diferente no campo Para, conforme mostrado na imagem abaixo.

A screenshot of multiple Outlook message windows with separate email addresses in the To field

5. Por fim, clique no botão "Enviar" para enviar os e-mails um a um.


2. Inserir anexos ou assinatura do Outlook nos e-mails enviados do Excel (com scripts VBA)

Esta seção mostra como inserir anexos ou a assinatura padrão do Outlook nos e-mails enviados do Excel.

2.1 Inserir anexos nos e-mails enviados do Excel

Aqui descrevemos diferentes situações para inserir anexos, e você pode escolher o método conforme sua necessidade. Nesta seção, você pode aprender (clique em qualquer link abaixo para ir ao método correspondente):


2.1.1 Enviar um arquivo específico como anexo por e-mail

Você pode aplicar o código VBA abaixo para enviar um ou mais arquivos de uma pasta como anexos a partir do Excel.

1. Pressione as teclas "Alt" + "F11".

2. Na janela "Microsoft Visual Basic for Applications" que abrir, clique em "Inserir" > "Módulo". Em seguida, cole o código VBA abaixo na janela "Módulo (Código)".

Código VBA: Enviar arquivos de uma pasta como anexos a partir 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 = "xxx@aaa.com"
            .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

Observações:

1) Na linha ".To = xxx@aaa.com", substitua "xxx@aaa.com" pelo endereço de e-mail do destinatário;
2) Altere o assunto e o corpo do e-mail separadamente nas linhas ".Subject = "teste"" e ".HTMLBody = "teste"";
3) Você pode adicionar destinatários em Cc e Bcc conforme necessário. Basta adicionar as duas linhas abaixo após a linha ."To = xxx@aaa.com".
.CC = "endereço de e-mail"
.BCC = "endereço de e-mail"

3. Em seguida, clique em "Ferramentas" > "Referências". Na caixa de diálogo "Referências – VBAProject", localize e marque a opção "Microsoft Outlook16.0 Object Library" e clique em "OK" para salvar as alterações.

A screenshot of the 'References – VBAProject' dialog box in Excel with the Microsoft Outlook 16.0 Object Library option selected

4. Pressione a tecla "F5" para executar o código. Uma janela "Procurar" será exibida; selecione os arquivos que deseja anexar ao e-mail e clique em "OK".

A screenshot of the 'Browse' window for selecting files to attach to an email in Exce

Em seguida, uma janela de mensagem será exibida. Os arquivos selecionados aparecerão como anexos no campo Anexos.

A screenshot of the Outlook message window with selected files displayed as attachments


2.1.2 Enviar a planilha atual como anexo por e-mail

Se você deseja enviar a planilha atual como anexo a partir do Excel, pode aplicar o script VBA desta seção.

1. Pressione as teclas "Alt" + "F11".

2. Na janela "Microsoft Visual Basic for Applications" que abrir, clique em "inserir" > "Módulo". Em seguida, cole o código VBA abaixo na janela "Módulo (Código)".

Código VBA: Enviar a planilha atual como anexo por e-mail

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 = "xxx@aaa.com"
    .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:

1) Na linha ."To = xxx@aaa.com", substitua "xxx@aaa.com" pelo endereço real do destinatário. Se precisar de mais de um endereço, separe-os por ponto e vírgula.
2) Altere o assunto e o corpo do e-mail separadamente nas linhas ".Subject = "kte features"" e ".Body = " Por favor, verifique e leia este documento."";
3) Nas duas linhas a seguir:
.CC = "endereço de e-mail"
.BCC = "endereço de e-mail"
Se quiser adicionar destinatários em Cc e Bcc, substitua o texto "endereço de e-mail" nas linhas pelos endereços desejados.
Se não precisar de destinatários em Cc e Bcc, basta adicionar um apóstrofo ' antes de cada linha.

3. Pressione a tecla "F5" para executar o código. A planilha atual será salva como um workbook do Excel e inserida automaticamente em uma janela de mensagem como anexo. Veja a imagem:

A screenshot of the Outlook message window with the current worksheet saved and attached as an Excel workbook

Observação: O workbook anexado, que contém apenas a planilha atual, terá o mesmo nome do workbook original. O horário em que o código foi executado também será adicionado ao nome do arquivo.


2.1.3 Enviar o workbook atual como anexo por e-mail

Após aprender o código VBA para enviar a planilha atual como anexo, aqui fornecemos outro script VBA para ajudar a enviar todo o workbook como anexo. Siga os passos abaixo.

1. Pressione as teclas "Alt" + "F11".

2. Na janela "Microsoft Visual Basic for Applications" que abrir, clique em "Inserir" > "Módulo". Em seguida, cole o código VBA abaixo na janela "Módulo (Código)".

Código VBA: Enviar o workbook atual como anexo por e-mail a partir 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 = "xxx@aaa.com"
    .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:

1) Na linha ".To = xxx@aaa.com", substitua "xxx@aaa.com" pelo endereço real do destinatário. Se precisar de mais de um endereço, separe-os por ponto e vírgula.
2) Altere o assunto e o corpo do e-mail separadamente nas linhas ".Subject = "kte features"" e ".Body = " Por favor, verifique e leia este documento."";
3) Nas duas linhas a seguir:
.CC = "endereço de e-mail"
.BCC = "endereço de e-mail"
Se quiser adicionar destinatários em Cc e Bcc, substitua o texto "endereço de e-mail" nas linhas pelos endereços desejados.
Se não precisar de destinatários em Cc e Bcc, basta adicionar um apóstrofo ' antes de cada linha.

3. Pressione a tecla "F5" para executar o código. O workbook atual será inserido automaticamente na janela de mensagem como anexo. Veja a imagem:

A screenshot of the Outlook message window with the current workbook attached automatically


2.1.4 Enviar todo o workbook como anexo em PDF

Para a maioria das pessoas, é comum salvar um workbook do Excel como arquivo PDF e depois enviá-lo como anexo. Nesta seção, mostraremos como enviar e-mails diretamente do Excel com o workbook aberto como anexo em PDF, sem precisar salvar manualmente o arquivo.

1. Pressione as teclas "Alt" + "F11".

2. Na janela "Microsoft Visual Basic for Applications" que abrir, clique em "Inserir" > "Módulo". Em seguida, cole o código VBA abaixo na janela "Módulo (Código)".

Código VBA: Enviar todo o workbook como 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 = "xxx@aaa.com"
       .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:

1) Na linha ".To = xxx@aaa.com", substitua "xxx@aaa.com" pelo endereço real do destinatário. Se precisar de mais de um endereço, separe-os por ponto e vírgula.
2) Altere o assunto e o corpo do e-mail separadamente nas linhas .Subject = "teste" e .Body = "teste";
3) Nas duas linhas a seguir:
.CC = "Endereço de E-mail"
.BCC = "Endereço de E-mail"
Se quiser adicionar destinatários em Cc e Bcc, substitua o texto "Endereço de E-mail" nas linhas pelos endereços desejados.
Se não precisar de destinatários em Cc e Bcc, basta adicionar um apóstrofo ' antes de cada linha.
4) O nome do arquivo PDF será igual ao nome do workbook original. O horário em que o código foi executado também será adicionado ao nome do arquivo. Se não quiser adicionar o carimbo de data/hora ao nome do arquivo, remova & Format(Now, "dd-mmm-yy h-mm-ss") da linha abaixo.
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) -1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf"

3. Pressione a tecla "F5" para executar o código. O workbook atual será inserido automaticamente em uma nova janela de mensagem como anexo em PDF. Veja a imagem:

A screenshot of the Outlook message window with the current workbook attached as a PDF file


2.1.5 Enviar a planilha atual como anexo em PDF

Por exemplo, há um workbook chamado “Vendas mensais” e você finalizou uma tabela de relatório de vendas em uma planilha chamada “relatório de vendas” e deseja enviar essa planilha como arquivo PDF para seus colegas. O código VBA a seguir pode ajudar.

1. Pressione as teclas "Alt" + "F11".

2. Na janela "Microsoft Visual Basic for Applications" que abrir, clique em "inserir" > "Módulo". Em seguida, cole o código VBA abaixo na janela "Módulo (Código)".

Código VBA: Enviar a planilha atual como 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 = "xxx@aaa.com"
    .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:

1) Na linha ".To = xxx@aaa.com", substitua "xxx@aaa.com" pelo endereço real do destinatário. Se precisar de mais de um endereço, separe-os por ponto e vírgula.
2) Altere o assunto e o corpo do e-mail separadamente nas linhas .Subject = "teste" e .Body = "teste";
3) Nas duas linhas a seguir:
.CC = "Endereço de E-mail"
.BCC = "Endereço de E-mail"
Se quiser adicionar destinatários em Cc e Bcc, substitua o texto "Endereço de E-mail" nas linhas pelos endereços desejados.
Se não precisar de destinatários em Cc e Bcc, basta adicionar um apóstrofo ' antes de cada linha.
4) O nome do arquivo PDF será: nome do workbook original_nome da planilha original. Neste caso, o nome do PDF será Vendas mensais_relatorio de vendas.

3. Pressione a tecla "F5" para executar o código. A planilha atual será inserida automaticamente em uma nova janela de mensagem como anexo em PDF. Veja a imagem:

A screenshot of the Outlook message window with the current worksheet attached as a PDF file


2.2 Inserir assinatura do Outlook nos e-mails enviados do Excel

Usando o exemplo acima, você aplicou o código VBA para enviar a planilha atual como anexo em PDF a partir do Excel, mas a assinatura do Outlook não foi adicionada à janela de mensagem. Para manter a assinatura padrão do Outlook no e-mail enviado do Excel, utilize o método a seguir.

Dois códigos VBA estão listados abaixo.

Código VBA1: O código ajuda a manter a assinatura do Outlook.

Código VBA2: O código envia a planilha atual como anexo em PDF.

Código VBA1: Manter assinatura do Outlook

.HTMLBody = "Email body" & "
" & .HTMLBody

Código VBA2: Enviar a planilha atual como 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 = "xxx@aaa.com"
    .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, pressione as teclas "Alt" + "F11" para abrir a janela "Microsoft Visual Basic for Applications".

2. Na janela "Microsoft Visual Basic for Applications", clique em "Inserir" > "Módulo". Em seguida, cole o código VBA2 acima na janela "Módulo (Código)".

3. Para manter a assinatura padrão do Outlook no e-mail enviado do Excel, modifique o código VBA2 conforme abaixo:

1) Substitua a linha ".Body" pelo "Código VBA1";
2) Mova a linha ".Display" para baixo da linha "With OutlookMail (ou With xMailOut em outros códigos)". Veja a imagem:

A screenshot showing the modified VBA code with the .Body line replaced and .Display placed under With OutlookMail

Veja 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 = "xxx@aaa.com"
    .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. Pressione a tecla "F5" para executar o código. Assim, você terá uma nova janela de mensagem com a planilha atual anexada como PDF, e a assinatura padrão do Outlook será inserida automaticamente ao final do corpo do e-mail.

A screenshot of an email in Outlook with the default signature automatically inserted at the end of the email body


3. Enviar e-mails automaticamente do Excel quando uma condição for atendida (com scripts VBA)

Nos exemplos acima, é necessário executar o código manualmente para enviar o e-mail. Se você deseja acionar o código automaticamente quando uma condição for atendida, como quando uma célula atinge determinado valor, quando o valor de uma célula é alterado, quando uma data é atingida, etc., o e-mail será enviado automaticamente. Esta seção lista as condições mais pesquisadas por usuários do Excel no Google para ajudar você a enviar e-mails automaticamente do Excel quando uma condição for atendida.

3.1 Enviar e-mail automaticamente quando uma célula atingir um determinado valor

Como mostrado na imagem abaixo, suponha que você tenha uma tabela de vendas com o total de vendas na célula D6. 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 ultrapassar10.000, mas se o total for igual ou menor que10.000, nenhuma ação será tomada.

1. Na planilha que contém a tabela de vendas, clique com o botão direito na guia da planilha e selecione "Visualizar código" no menu de contexto.

2. Na janela "Microsoft Visual Basic for Applications" que abrir, cole o código VBA abaixo na janela "Planilha (Código)".

Código VBA: Enviar e-mail automaticamente quando uma célula atingir 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 = "xxx@aaa.com"
.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

Observações:

1) "D6" é a célula cujo valor será usado para enviar o e-mail.
2) " >10000" é a condição, ou seja, um e-mail será enviado quando o valor em D6 for maior que10.000.
3) "Range(“D6”)" na linha abaixo significa que o corpo do e-mail fará referência ao valor em D6.
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
4) Na linha ".To = xxx@aaa.com", substitua "xxx@aaa.com" pelo endereço real do destinatário. Se precisar de mais de um endereço, separe-os por ponto e vírgula.
5) Altere o assunto do e-mail na linha .Subject = "teste".
6) Nas duas linhas a seguir:
.CC = "Endereço de E-mail"
.BCC = "Endereço de E-mail"
Se quiser adicionar destinatários em Cc e Bcc, substitua o texto "Endereço de E-mail" nas linhas pelos endereços desejados.
Se não precisar de destinatários em Cc e Bcc, basta adicionar um apóstrofo ' antes de cada linha.

A partir de agora, quando o valor da célula D6 ultrapassar10.000, um e-mail será criado conforme mostrado na imagem abaixo.

A screenshot of an email created in Outlook when the value in cell D6 exceeds 10000 in Excel


3.2 Enviar e-mail automaticamente quando o valor de uma célula for alterado

Como mostrado na imagem abaixo, suponha que você receba um workbook que contém vendas mensais em diferentes planilhas e o total de vendas em uma planilha. Você precisa verificar o total de vendas e, se ele for modificado, enviar o workbook de volta ao remetente e informá-lo sobre a alteração.

1. Na planilha que contém a tabela de vendas, clique com o botão direito na guia da planilha e selecione "Visualizar código" no menu de contexto.

2. Na janela "Microsoft Visual Basic for Applications" que abrir, cole o código VBA abaixo na janela "Planilha (Código)".

Código VBA: Enviar e-mail automaticamente quando o valor de uma célula específica 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 = "xxx@aaa.com"
.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

Observação: No código,

1) "B14" no código significa que, quando o valor da célula B14 for alterado, um e-mail será enviado.
2) Na linha ".To = xxx@aaa.com", substitua "xxx@aaa.com" pelo endereço real do destinatário. Se precisar de mais de um endereço, separe-os por ponto e vírgula.
3) Altere o assunto do e-mail na linha .Subject = "Planilha modificada".
4) Nas duas linhas a seguir:
.CC = "Endereço de E-mail"
.BCC = "Endereço de E-mail"
Se quiser adicionar destinatários em Cc e Bcc, substitua o texto "Endereço de E-mail" nas linhas pelos endereços desejados.
Se não precisar de destinatários em Cc e Bcc, basta adicionar um apóstrofo ' antes de cada linha.

A partir de agora, quando o valor da célula B14 for alterado, uma mensagem do Outlook será criada automaticamente conforme mostrado na imagem abaixo.

A screenshot of an email created in Outlook when the value in cell B14 changes


3.3 Enviar e-mail automaticamente ao salvar o workbook

Se você tem um workbook que precisa ser compartilhado após alterações, normalmente é necessário salvar o arquivo, abrir o cliente de e-mail, criar um novo e-mail com o arquivo anexado, preencher os campos e enviar. Esta seção mostra como criar um e-mail automaticamente toda vez que o workbook for salvo. Siga os passos abaixo.

1. Pressione as teclas "Alt" + "F11" para abrir a janela "Microsoft Visual Basic for Applications".

2. Nesta janela, clique duas vezes em "ThisWorkbook" no painel "Projeto" e cole o código VBA abaixo na janela "ThisWorkbook (Código)".

Código VBA: Enviar e-mail automaticamente ao salvar o workbook

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 = "xxx@aaa.com"
        .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

Observação: No código,

1) Na linha ".To = xxx@aaa.com", substitua "xxx@aaa.com" pelo endereço real do destinatário. Se precisar de mais de um endereço, separe-os por ponto e vírgula.
2) Altere o assunto e o corpo do e-mail separadamente nas linhas ".Subject = "O workbook foi atualizado"" e ".Body = "Olá," & Chr(13) & Chr(13) & "O arquivo foi atualizado."".
3) Nas duas linhas a seguir:
.CC = "Endereço de E-mail"
.BCC = "Endereço de E-mail"
Se quiser adicionar destinatários em Cc e Bcc, substitua o texto "Endereço de E-mail" nas linhas pelos endereços desejados.
Se não precisar de destinatários em Cc e Bcc, basta adicionar um apóstrofo ' antes de cada linha.

A partir de agora, ao salvar o workbook pressionando "Ctrl" + "S" ou clicando no botão "Salvar", um e-mail do Outlook será criado automaticamente. O workbook atual será anexado e os campos serão preenchidos conforme especificado. Veja a imagem:

A screenshot showing an Outlook email with the current workbook attached, ready to be sent automatically

Dica: Se você usa este workbook com frequência, recomendamos salvá-lo como "Pasta de Trabalho Habilitada para Macro do Excel" para manter o script VBA para uso futuro. Veja os passos abaixo.

1) Clique em "Arquivo" > "Salvar Como" e escolha uma pasta para salvar o arquivo.
2) Na caixa de diálogo "Salvar Como", renomeie o arquivo conforme necessário no campo "Nome do arquivo", escolha "Pasta de Trabalho Habilitada para Macro do Excel" na lista suspensa "Salvar como tipo" e clique em "Salvar". Veja a imagem:

A screenshot of the 'Save As' dialog in Excel showing the option to save the workbook as an Excel Macro-Enabled Workbook


3.4 Enviar e-mail automaticamente em um horário específico

Suponha que você precise enviar um e-mail com um workbook de tarefas para alguém "toda sexta-feira de manhã às9h", e deseja fazer isso automaticamente no Excel sem operar manualmente o cliente de e-mail. Esta seção mostra como realizar essa tarefa.

1. Pressione as teclas "Alt" + "F11" para abrir a janela "Microsoft Visual Basic for Applications".

2. Na janela "Microsoft Visual Basic for Applications", clique em "Inserir" > "Módulo". Em seguida, cole o código VBA abaixo na janela do Módulo.

Código VBA1: Enviar o workbook atual como anexo por e-mail a partir 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 = "xxx@aaa.com"
    .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 em "ThisWorkbook" no painel "Projeto" e cole o código VBA abaixo na janela "ThisWorkbook (Código)".

A screenshot showing the VBA code editor with the 'Workbook_Open' event and 'Application.OnTime' function to schedule email sending

Código VBA2: Enviar e-mail automaticamente em um horário específico

Private Sub Workbook_Open()
    Application.OnTime TimeValue("09:00:00"), "Timer"
End Sub

Observações:

1) No código VBA1, "Sexta-feira" na linha abaixo significa que o e-mail será enviado automaticamente toda sexta-feira;
If Weekday(Date) = vbFriday Then
2) Nos códigos VBA1 e VBA2, o horário "09:00:00" significa que o e-mail será enviado às9h em determinado dia.
Você pode alterar o dia e o horário conforme necessário.
3) Quando o código for executado, um e-mail será criado. Se não quiser que a janela de mensagem apareça e deseja enviar diretamente, remova a linha ".Display" do código VBA1 e remova o apóstrofo antes da linha ‘.Send.

4. Salve os códigos e depois salve o workbook como uma pasta de trabalho habilitada para macro do Excel, conforme abaixo.

4.1) Clique em "Arquivo" > "Salvar Como" e escolha uma pasta para salvar o arquivo.
4.2) Na caixa de diálogo "Salvar Como", renomeie o arquivo conforme necessário no campo "Nome do arquivo", escolha "Pasta de Trabalho Habilitada para Macro do Excel" na lista suspensa "Salvar como tipo" e clique em "Salvar". Veja a imagem:

A screenshot of the 'Save As' dialog in Excel showing the option to save the workbook as an Excel Macro-Enabled Workbook

5. Abra o workbook habilitado para macro salvo; então um e-mail será criado ou enviado automaticamente quando o dia e o horário chegarem.


4. Tópicos adicionais

Esta seção reúne outros tópicos que você pode encontrar ao enviar e-mails a partir do Excel.

4.1 Enviar por e-mail um intervalo de células do Excel (com script VBA)

Suponha que haja uma tabela de vendas mensais em uma planilha do Excel, como mostrado na imagem abaixo, e você precise enviar essa tabela para outras pessoas como conteúdo do corpo do e-mail ou como anexo. Aqui fornecemos dois métodos para realizar essa tarefa.

4.1.1 Enviar um intervalo como parte do conteúdo do corpo do e-mail a partir do Excel

Você pode executar o código VBA abaixo para enviar um intervalo de células como parte do conteúdo do corpo do e-mail a partir do Excel

1. Pressione as teclas "Alt" + "F11" para abrir a janela "Microsoft Visual Basic for Applications".

2. Na janela "Microsoft Visual Basic for Applications", clique em "Ferramentas" > "Referências". Em seguida, marque a opção "Microsoft Outlook16.0 Object Library" e clique em "OK" na caixa de diálogo "Referências – VBAProject".

3. Clique em "Inserir" > "Módulo" e cole o código VBA abaixo na janela "Módulo (Código)".

Código VBA: Enviar um intervalo de células como parte do conteúdo do corpo do e-mail a partir 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 = "xxx@aaa.com"
        .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

Observação: No código,

1) Na linha ".To = xxx@aaa.com", substitua "xxx@aaa.com" pelo endereço real do destinatário. Se precisar de mais de um endereço, separe-os por ponto e vírgula.
2) Nas duas linhas a seguir:
.CC = "Endereço de E-mail"
.BCC = "Endereço de E-mail"
Se quiser adicionar destinatários em Cc e Bcc, substitua o texto "Endereço de E-mail" nas linhas pelos endereços desejados.
Se não precisar de destinatários em Cc e Bcc, basta adicionar um apóstrofo ' antes de cada linha.

4. Pressione a tecla "F5" para executar o código. Na caixa de diálogo "Kutools para Excel" que aparecer, selecione o intervalo de células que deseja enviar como parte do corpo do e-mail e clique em "OK". Veja a imagem:

A screenshot of the Kutools for Excel dialog box where a range of cells is selected to send as part of an email body

Em seguida, um e-mail do Outlook será criado automaticamente. O intervalo selecionado na planilha será inserido no corpo do e-mail. Veja a imagem:

A screenshot of an Outlook email with the selected range from Excel inserted into the email body


4.1.2 Enviar um intervalo como anexo do Excel por e-mail

Se você precisa enviar um intervalo de células de uma planilha como anexo a partir do Excel, utilize o código VBA abaixo.

1. Pressione as teclas "Alt" + "F11".

2. Na janela "Microsoft Visual Basic for Applications" que abrir, clique em "Inserir" > "Módulo". Em seguida, cole o código VBA abaixo na janela "Módulo (Código)".

Código VBA: Enviar um intervalo como anexo do Excel por e-mail

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 = "xxx@aaa.com"
    .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

Observações:

1) Na linha ".To = xxx@aaa.com", substitua "xxx@aaa.com" pelo endereço real do destinatário. Se precisar de mais de um endereço, separe-os por ponto e vírgula.
2) Altere o assunto e o corpo do e-mail separadamente nas linhas ".Subject = "Vendas mensais de2021"" e ".Body = "Olá, por favor, verifique e leia este documento."";
3) Nas duas linhas a seguir:
.CC = "endereço de e-mail"
.BCC = "endereço de e-mail"
Se quiser adicionar destinatários em Cc e Bcc, substitua o texto "endereço de e-mail" nas linhas pelos endereços desejados.
Se não precisar de destinatários em Cc e Bcc, basta adicionar um apóstrofo ' antes de cada linha.

3. Pressione a tecla "F5" para executar o código. Na caixa de diálogo "Kutools para Excel" que aparecer, selecione o intervalo de células que deseja enviar como anexo no e-mail e clique em "OK". Veja a imagem:

A screenshot of the Kutools for Excel dialog box where a range of cells is selected to send as an attachment in an email

Em seguida, um e-mail do Outlook será criado automaticamente. O intervalo de células selecionado na planilha será salvo como um workbook do Excel e anexado na janela de mensagem. Veja a imagem:

A screenshot of an Outlook email with the selected range from Excel saved as an attachment


4.2 Enviar e-mails ao clicar em um botão no Excel

Se você deseja clicar em um botão de comando para acionar uma macro e enviar um e-mail a partir do Excel, por exemplo, enviar o workbook atual como anexo ao clicar em um botão na planilha, siga os passos abaixo para realizar essa tarefa.

1. Clique em "Desenvolvedor" > "Inserir" > "Botão de Comando (Controle ActiveX)". Em seguida, desenhe um botão de comando na planilha.

Dica: Se você já possui um botão de comando, pule esta etapa.

2. Pressione as teclas "Alt" + "F11" para abrir a janela "Microsoft Visual Basic for Applications". Na janela, clique em "Inserir" > "Módulo" e cole o código VBA (o código usado para enviar o workbook atual como anexo a partir do Excel) na janela "Módulo (Código)".

Clique aqui para obter o código.

Observação: O nome da macro criada na etapa2 é "SendWorkbook".

3. Pressione as teclas "Alt" + "Q" para fechar a janela "Microsoft Visual Basic for Applications".

4. Agora é necessário atribuir a macro ao botão de comando. Clique com o botão direito no botão de comando e selecione "Visualizar código" no menu de contexto.

5. Em seguida, a janela "Microsoft Visual Basic for Applications" será exibida e você verá as duas linhas abaixo na janela "Planilha (Código)".

Private Sub CommandButton1_Click()
End Sub

A screenshot of the Microsoft Visual Basic for Applications window showing the CommandButton1_Click code

6. Digite o nome da macro existente dentro do procedimento para o botão de comando.

A screenshot of editing the VBA code to assign an existing macro to the command button

7. Pressione as teclas "Alt" + "Q" para fechar o "Editor do Visual Basic" e clique em "Desenvolvedor" > "Modo de Design" para desativar o modo de design.

A screenshot of turning off Design Mode in the Developer tab

Agora você pode clicar no botão de comando para enviar um e-mail com o workbook atual como anexo.


4.3 Enviar e-mails de uma conta de e-mail específica

Normalmente, ao enviar um e-mail do Excel com código VBA, a conta de e-mail do remetente é a conta padrão do Outlook. Suponha que você tenha várias contas configuradas no Outlook e queira usar uma conta específica para enviar os e-mails do Excel, em vez da conta padrão. O código VBA a seguir pode ajudar.

Os códigos abaixo são necessários neste caso.

Código VBA1:

Dim OutlookMail As Outlook.MailItem

Código VBA2:

For Each xAccount In OutlookApp.Session.Accounts
  If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("zxm@addin99.com") Then 'Specify your email account here
    OutlookMail.SendUsingAccount = xAccount
  End If
Next

Como usar os códigos VBA acima?

1) No seu próprio código, substitua a linha como "Dim OutlookMail As Object” pelo Código VBA1;
2) Adicione o Código VBA2 abaixo da linha "On Error Resume Next” no seu código. Em seguida, especifique o endereço de e-mail que será usado para enviar o e-mail no Código VBA2.

Neste exemplo, vamos especificar uma conta de e-mail para enviar o workbook atual como anexo a partir do Excel. Siga os passos abaixo.

1. Pressione as teclas "Alt" + "F11". Na janela "Microsoft Visual Basic for Applications", clique em "Ferramentas" > "Referências". Em seguida, marque a opção "Microsoft Outlook16.0 Object Library" e clique em "OK" na caixa de diálogo "Referências – VBAProject".

A screenshot of the 'References – VBAProject' dialog box in Excel with the Microsoft Outlook 16.0 Object Library option selected

2. Clique em "Inserir" > "Módulo". Em seguida, cole o código VBA abaixo na janela "Módulo (Código)".

Código VBA: Enviar o workbook atual como anexo por e-mail a partir do Excel por uma conta específica do Outlook

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("zxm@addin99.com") Then 'Specify your email account here
    OutlookMail.SendUsingAccount = xAccount
  End If
Next
'End
With OutlookMail
    .To = "xxx@aaa.com"
    .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. Pressione a tecla "F5" para executar o código. Uma mensagem de e-mail do Outlook será exibida e você verá que o campo "De" está preenchido com a conta de e-mail especificada no código.


4.4 Enviar um e-mail quando uma data for atingida

Se você precisa enviar um e-mail com base em uma data de vencimento específica, por exemplo, conforme mostrado na imagem abaixo, há uma tabela de projetos, "quando a data de vencimento no intervalo E2:E7 for igual ou menor que7 dias a partir de hoje (considerando a data atual como04/08/2022)", um e-mail será enviado automaticamente aos responsáveis pelos projetos, notificando que o projeto está prestes a expirar.

1. Na planilha que contém a tabela de projetos, clique com o botão direito na guia da planilha e selecione "Visualizar código" no menu de contexto.

2. Na janela "Microsoft Visual Basic for Applications" que abrir, cole o código VBA abaixo na janela "Planilha (Código)".

Código VBA: Enviar e-mail automaticamente quando uma data de vencimento for atingida

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

Observação: No código,

1) Nas linhas abaixo, "E2:E7" contém as datas de vencimento para as quais os e-mails serão enviados. "C2:C7" contém os endereços de e-mail dos destinatários. E "D2:D7" contém as observações que serão adicionadas ao corpo do e-mail para notificar os destinatários de que o projeto está prestes a expirar. Você pode alterar os intervalos conforme necessário.
Set xRgDate = Range("E2:E7")
Set xRgSend = Range("C2:C7")
Set xRgText = Range("D2:D7")
2) A linha abaixo significa que a data de vencimento deve ser maior que1 dia e igual ou menor que7 dias a partir de hoje. Você pode alterar conforme necessário.
If CDate(xRgDateVal) - Date <=7 And CDate(xRgDateVal) - Date >0 Then
3) Na linha ".To = xxx@aaa.com", substitua "xxx@aaa.com" pelo endereço real do destinatário. Se precisar de mais de um endereço, separe-os por ponto e vírgula.
4) Altere o assunto do e-mail na linha ".Subject = "Planilha modificada"".
5) Nas duas linhas a seguir:
.CC = "Endereço de E-mail"
.BCC = "Endereço de E-mail"
Se quiser adicionar destinatários em Cc e Bcc, substitua o texto "Endereço de E-mail" nas linhas pelos endereços desejados.
Se não precisar de destinatários em Cc e Bcc, basta adicionar um apóstrofo ' antes de cada linha.

3. Pressione a tecla "F5" para executar o código. Se a data de vencimento atender às condições, o e-mail correspondente será criado. Neste caso, dois e-mails serão criados conforme mostrado na imagem abaixo.

A screenshot of two emails created automatically based on expiration date matching conditions in Excel


5. Uma ferramenta prática para ajudar você a enviar e-mails facilmente a partir do Excel

Se você é iniciante em VBA, os métodos acima podem não ser fáceis de aplicar. Por isso, recomendamos o recurso "Enviar E-mails" do Kutools para Excel. Com esse recurso, você pode enviar e-mails facilmente a partir do Excel com apenas alguns cliques. Siga os passos abaixo.

Kutools para Excel oferece mais de 300 recursos avançados para simplificar tarefas complexas, aumentando a criatividade e a eficiência. Integrado com capacidades de IA, o Kutools automatiza tarefas com precisão, tornando a gestão de dados fácil e eficiente. Mais informações sobre o Kutools para Excel...  Teste gratuito...
 5.1 Crie facilmente uma lista de envio que inclua os campos de e-mail necessários

Antes de aplicar o recurso Enviar E-mails, é necessário criar uma lista de envio que contenha os campos de e-mail necessários. O recurso Criar Lista de Correspondência pode ajudar.

1. Clique em "Kutools Plus" > "Criar Lista de Correspondência".

2. Na janela "Criar Lista de Correspondência" que abrir, configure conforme abaixo.

2.1) Na seção "Selecione as colunas a serem incluídas na lista de correspondência", marque os campos necessários no seu e-mail;
2.2) Na seção "Selecione os anexos a serem adicionados", marque um ou mais anexos necessários;
2.3) Especifique um intervalo para posicionar a lista de envio;
2.4) Clique no botão "Criar". Veja a imagem:

Uma tabela de exemplo de lista de envio será criada conforme mostrado na imagem abaixo.

3. Agora, substitua os dados originais do exemplo pelos seus próprios dados de campo.

Agora você criou uma tabela de lista de envio. Em seguida, aplique o recurso "Enviar E-mails" para enviar e-mails do Excel com base nos campos criados.

Kutools para Excel - Potencialize o Excel com mais de 300 ferramentas essenciais. Aproveite recursos de IA permanentemente gratuitos! Obtenha Agora


 5.2 Envie facilmente e-mails incluindo os campos criados na lista de envio

Após criar a lista de envio (clique para saber como) que contém os campos necessários nos seus e-mails, agora você pode enviar e-mails do Excel com esses campos.

1. Selecione toda a lista de envio e clique em "Kutools Plus" > "Enviar E-mails".

2. Na caixa de diálogo "Enviar E-mails", faça a seguinte configuração.

2.1) Os campos são preenchidos automaticamente na caixa de diálogo de cada campo, conforme especificado na lista de envio;
Dica: Se não precisar de determinado campo neste momento, escolha uma opção em branco na lista suspensa.
2.2)"Inserir Marcador de Posição" (opcional): Caso precise inserir informações variáveis no corpo do e-mail.
Por exemplo, se precisar enviar um e-mail para vários destinatários com nome personalizado para cada um, posicione o cursor no corpo do e-mail onde deseja inserir o marcador de posição, selecione o campo “E: Nome” (ou outro campo de nome na sua lista de envio) e clique no botão "Inserir Marcador de Posição";
Quando os destinatários receberem o e-mail, o corpo do e-mail será o mesmo, mas os nomes serão únicos para cada um.
2.3) Escreva o corpo do e-mail conforme necessário;
2.4) Certifique-se de que a caixa "Enviar usando o Outlook" esteja marcada;
2.5) Clique no botão "Enviar". Veja a imagem:

3. Uma caixa de diálogo "Kutools para Excel" será exibida informando quantos e-mails foram enviados. Clique em "OK" para fechar a caixa de diálogo.

Dica: Você pode acessar a pasta "Itens Enviados" no Outlook para verificar os e-mails enviados.


5.3 Envie facilmente e-mails com corpo em HTML (incluindo hiperlink, imagem, etc.)

O recurso Enviar E-mails permite criar um e-mail em HTML, incluindo hiperlink, imagem, diferentes tamanhos e cores de fonte, etc.

Após criar uma lista de envio que inclua os campos de e-mail necessários, ao configurar a caixa de diálogo Enviar E-mails, você pode enriquecer o corpo do e-mail 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, mostramos um código VBA para ajudar a enviar e-mails com a assinatura padrão do Outlook. Com o recurso Enviar E-mails, basta marcar uma opção para que a assinatura padrão do Outlook seja inserida nos e-mails enviados do Excel.

Após criar uma lista de envio que inclua os campos de e-mail necessários, ao configurar a caixa de diálogo Enviar E-mails, clique em "Opções" > "Usar configurações de assinatura do Outlook".

Observação: Certifique-se de que haja uma marca de seleção exibida antes da opção Usar configurações de assinatura do Outlook.

Quando os destinatários receberem o e-mail, verão a assinatura padrão do Outlook exibida ao final do corpo do e-mail.


5.5 Envie facilmente e-mails de uma conta de e-mail específica

Para usar uma conta de e-mail específica para enviar e-mails do Excel em vez da conta padrão, o recurso Enviar E-mails também pode ajudar a realizar essa tarefa facilmente.

Após criar uma lista de envio que inclua os campos de e-mail necessários, ao configurar a caixa de diálogo Enviar E-mails, clique em "Opções" > "Enviado de", depois selecione a conta de e-mail desejada para enviar os e-mails.

Observação:  Após selecionar a conta de e-mail, uma marca de seleção será exibida antes dela.

Clique aqui para saber mais sobre o recurso Enviar E-mails.

Kutools para Excel - Potencialize o Excel com mais de 300 ferramentas essenciais. Aproveite recursos de IA permanentemente gratuitos! Obtenha Agora

Em resumo, enviar e-mails a partir do Excel é bastante útil no nosso dia a dia. Este artigo aborda tópicos abrangentes sobre envio de e-mails a partir do Excel. Se houver outros tópicos ou soluções mais fáceis, deixe um comentário para me avisar.

Melhores Ferramentas de Produtividade para Office

🤖 Kutools AI Aide: Revolucione a análise de dados com base em: Execução Inteligente|Gerar Código |Criar Fórmulas Personalizadas|Analisar Dados e Gerar Gráficos |Acionar Funções Aprimoradas
Recursos populares: Encontrar, Destacar ou Marcar Duplicados|Excluir Linhas em Branco|Combinar Colunas ou Células sem perder dados| Arredondar...
Super PROC: PROC com múltiplos critérios|PROC com múltiplos valores|Procura em várias planilhas|Correspondência Fuzzy....
Lista Suspensa Avançada: Crie rapidamente Lista Suspensa|Lista Suspensa Dependente|Lista Suspensa com Múltipla Seleção....
Gerenciador de Colunas: Adicionar um número específico de colunas |Mover Colunas |Alternar o Estado de Visibilidade de Colunas Ocultas| Comparar Intervalo & Colunas...
Recursos em Destaque: Grade de foco|Visualização de Design|Barra de fórmulas aprimorada|Gerenciador de Pasta de Trabalho & Planilha|Biblioteca de AutoTexto|Selecionador de Data|Mesclar Dados |Criptografar/Descriptografar Células|Enviar Email por Lista|Super Filtro|Filtro Especial (filtrar negrito/itálico/tachado...)...
Top15 Conjuntos de Ferramentas:12 Ferramentas de Texto (Adicionar Texto, Excluir Caracteres Específicos, ... ) |Mais de50 Tipos de Gráficos (Gráfico de Gantt, ... ) |Mais de40 Fórmulas Práticas (Calcular a idade com base na data de nascimento, ... ) |19 Ferramentas de Inserção (Inserir Código QR, Inserir Imagem a partir do Caminho, ... ) |12 Ferramentas de Conversão (Converter em Palavras, Conversão de Moeda, ... ) |7 Ferramentas de Mesclar & Dividir (Mesclar Linhas Avançado, Dividir Células, ... ) |... e muito mais
Use o Kutools no idioma de sua preferência – compatível com Inglês, Espanhol, Alemão, Francês, Chinês e mais de40 outros!

Impulsione suas habilidades no Excel com Kutools para Excel e experimente uma eficiência sem igual. Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo.Clique aqui para obter o recurso que você mais precisa...


Office Tab traz interface de abas para o Office e facilita muito seu trabalho

  • Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas abas da mesma janela, em vez de novas janelas.
  • Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!