KutoolsforOffice — Uma solução, cinco ferramentas poderosas.Fazer mais com menos esforço.

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

AutorSiluvia Data de Modificação

Normalmente, utilizamos clientes de e-mail como o Outlook ou o Gmail para enviar mensagens. No entanto, muitas pessoas armazenam dados numa pasta de trabalho do Excel e precisam partilhar parte desses dados com terceiros enquanto trabalham neles. Nesses casos, enviar e-mails diretamente a partir da pasta de trabalho do Excel poupa o tempo que gastariam a utilizar um cliente de e-mail externo. Este tutorial passo a passo mostra-lhe como enviar e-mails a partir do Excel em diferentes cenários.

Nota: Antes de aplicar os métodos seguintes, certifique-se de que tem o Outlook configurado como cliente de e-mail no seu computador e definido como predefinido.

 Índice:[ Ocultar ]

(Clique em qualquer título na tabela de conteúdos abaixo ou à direita para navegar até ao capítulo correspondente.)

1. Noções básicas sobre o envio de e-mails diretamente do Excel

Esta secção apresenta os conceitos essenciais para enviar e-mails diretamente a partir do Excel.

1,1 Enviar e-mails a partir do Excel com funções incorporadas do Excel

Se pretender enviar apenas e-mails simples a partir do Excel — incluindo unicamente os campos Para, Assunto, Cc e corpo da mensagem — as funções incorporadas do Excel podem ajudá-lo.


1,1.1 Enviar e-mail a partir do Excel utilizando uma fórmula

Conforme ilustrado na tabela abaixo, para enviar diferentes e-mails a partir do Excel com base nos campos fornecidos, basta utilizar referências de células desses campos para criar fórmulas de Hiperligação distintas e concluir a tarefa. Após criar as hiperligações de e-mail, clique simplesmente na hiperligação pretendida para enviar automaticamente a mensagem.

Nota: Se houver mais do que um destinatário nos campos Para ou Cc, separe-os com ponto e vírgula.

Esta secção está dividida em quatro partes para lhe mostrar, passo a passo, como adicionar separadamente à fórmula de Hiperligação o endereço de e-mail do destinatário, os destinatários em cópia (Cc), a linha de assunto e o corpo da mensagem. Siga as instruções abaixo.

A sintaxe e os argumentos da função «HIPERLIGAÇÃO» são os seguintes:

Sintaxe

HYPERLINK(link_location, [friendly_name])

Argumentos

«Localização_da_ligação» (obrigatório): O caminho e o nome do ficheiro do documento a abrir;
Sugestão: Neste tutorial, todos os campos necessários para um e-mail, tais como o(s) destinatário(s) Endereço de Email, o(s) destinatário(s) em cópia (Cc), a linha de assunto e o texto do corpo, devem ser colocados no primeiro argumento «localização_da_ligação».
«Nome_fácil» (opcional): O valor de salto apresentado na célula.

1,1.1,1 Adicionar Endereço de Email à fórmula de Hiperligação

Neste caso, utilizamos «mailto:» na fórmula para incluir um destinatário de e-mail. Como o endereço de e-mail do primeiro destinatário está na célula B2, basta adicionar «mailto:» seguido da referência à célula B2.

“mailto:”&B2

1. Selecione uma célula para exibir a hiperligação — neste caso, escolhi a célula F2.

2. Em seguida, insira a seguinte fórmula nessa célula.

=HYPERLINK("mailto:"&B2)

Nota: ao premir a tecla «Enter», será criada uma hiperligação, tal como ilustrado na imagem seguinte. Ao clicar nessa ligação, abre-se automaticamente uma nova mensagem no Outlook, com o endereço de e-mail do destinatário já preenchido no campo Para.

O endereço de e-mail do destinatário foi agora adicionado à fórmula da hiperligação. Prossiga com os passos seguintes para incluir, conforme necessário, a linha de assunto, os destinatários em cópia (Cc) e o corpo da mensagem.


1,1.1,2 Adicionar destinatário(s) Cc à fórmula de Hiperligação

Para adicionar destinatário(s) em cópia (Cc) à função Hiperligação, inclua «?cc=» na fórmula da seguinte forma:

«?cc=» & C2
em que C2 contém o Endereço de Email do destinatário em cópia.

A fórmula na célula F2 deverá ser a seguinte:

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


1,1.1,3 Adicionar linha de assunto à fórmula de Hiperligação

Para adicionar a linha de assunto à função Hiperligação, inclua «&subject=» na fórmula da seguinte forma:

«&subject=»& D2
em que D2 contém o Assunto do Email.

A fórmula na célula F2 deverá agora ter o seguinte aspeto:

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


1,1.1,4 Adicionar texto do corpo com quebras de linha à fórmula de Hiperligação

O último passo consiste em adicionar o texto do corpo à fórmula de Hiperligação. Como pode observar no exemplo, as duas linhas de texto em E2 estão separadas por uma quebra de linha — e pretende manter essa quebra no corpo do e-mail. Será que o Outlook reconhece a quebra de linha nesta situação? Vamos verificar.

Para incluir o texto do corpo na fórmula de Hiperligação, basta adicionar «&body=» à fórmula da seguinte forma.

«&body=»& E2
em que E2 contém o corpo da mensagem de correio eletrónico.

A fórmula na célula F2 é agora apresentada da seguinte forma:

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

Nota: Ao premir a tecla «Enter» e clicar na ligação, poderá verificar no Novo Email que o conteúdo do corpo da mensagem aparece numa única linha.

Para apresentar o corpo do e-mail em linhas separadas, basta modificar o conteúdo da célula, inserindo o código de caractere «%0A» (Retorno de Carro) exatamente onde desejar incluir uma quebra de linha. Veja a imagem:


1,1.1,5 Especificar o texto a apresentar para a hiperligação

Nos passos anteriores, concluímos o argumento Link_location com os campos do e-mail. Nesta secção, vamos finalizar o próximo argumento: [nome_friendly].

Neste caso, pretendo que a célula da hiperligação exiba o texto «E-mail para xx», em que «xx» corresponde ao nome do destinatário na célula A2. Assim, a fórmula em F2 deverá ser alterada para:

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

Prima a tecla «Enter» para obter o seu resultado.

Selecione esta célula com a fórmula e arraste a sua «Alça de Preenchimento Automático» para baixo para criar outras hiperligações de e-mail. Veja a imagem:


1,1.2 Enviar e-mail a partir do Excel com a função Hiperligação

Além de utilizar a fórmula de hiperligação indicada acima, pode criar manualmente uma hiperligação de e-mail com a função «Criar Hiperlink» no Excel. Esta secção mostra-lhe os passos necessários.

1. Clique com o botão direito do rato na célula onde deseja inserir uma hiperligação e escolha «Ligação» no menu de contexto.

2. Na caixa de diálogo «Criar Hiperligação» que surge, configure-a da seguinte forma.

2,1) Selecione «Endereço de Email» no painel esquerdo.
2,2) Na caixa de texto «Texto a apresentar», introduza o texto que pretende exibir na célula;
Dicas: Não pode utilizar referências de células nesta caixa de diálogo, por isso deverá introduzir manualmente os campos do email da seguinte forma.
2,3) Na caixa de texto «Endereço de Email», deverá introduzir o seguinte Endereço de Email.
mailto:Endereço de Email
Substitua o texto “Endereço de Email” pelo seu verdadeiro Endereço de Email. Se tiver mais do que um Endereço de Email, separe-os com ponto e vírgula.
2,4) Na caixa de texto «Assunto», pode especificar aqui mesmo o seu Assunto do Email e o corpo da mensagem. Configure da seguinte forma:
Assunto do Email&body=Corpo do email
Neste caso, introduzi «Vendas mensais&body=Olá,%0AMensagem recebida».
em que o assunto é Vendas mensais;
e
o corpo da mensagem é:
Olá,
Mensagem recebida. («%0A» é o código de caractere Retorno de Carro reconhecido pelo Outlook)
2,5) Clique no botão «OK» para guardar a hiperligação. Veja a captura de ecrã:

Ao clicar na hiperligação, é automaticamente criado um e-mail no Outlook com os campos Para, Assunto e Corpo já preenchidos, tal como mostrado na imagem seguinte.

Notas:

1) Com este método, teve de criar manualmente cada uma das hiperligações de correio eletrónico.
2) Não pode adicionar o campo Cc aos emails com este método. Assim, se precisar do campo Cc, adicione-o a partir da nova janela de email aberta.

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

No exemplo anterior, pode observar que vários endereços de e-mail aparecem numa única célula, separados por ponto e vírgula. Se tiver uma lista de endereços de e-mail, como ilustrado na imagem seguinte, e pretender enviar um e-mail (ou e-mails individuais) para todos eles, o código VBA seguinte poderá ajudá-lo.


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

1. Na folha de cálculo que contém todos os endereços de e-mail para os quais pretende enviar a mensagem, prima as teclas «Alt» + «F11» para abrir a janela «Microsoft Visual Basic para Aplicações».

2. Na janela «Microsoft Visual Basic para Aplicações», clique em «Inserir» > «Módulo» e cole o código seguinte na janela «Módulo (Código)».

Código VBA: Enviar e-mail para uma lista de Endereço de Email

Sub sendmultiple()
'updateby Extendoffice 20220802
    Dim xOTApp As Object
    Dim xMItem As Object
    Dim xCell As Range
    Dim xRg As Range
    Dim xEmailAddr As String
    Dim xTxt As String
    On Error Resume Next
    xTxt = ActiveWindow.RangeSelection.Address
    Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
    If xRg Is Nothing Then Exit Sub
    Set xOTApp = CreateObject("Outlook.Application")
    For Each xCell In xRg
        If xCell.Value Like "*@*" Then
            If xEmailAddr = "" Then
                xEmailAddr = xCell.Value
            Else
                xEmailAddr = xEmailAddr & ";" & xCell.Value
            End If
        End If
    Next
    Set xMItem = xOTApp.CreateItem(0)
    With xMItem
        .To = xEmailAddr
        .Subject = "Test"
        .Body = "Dear " _
                & vbNewLine & vbNewLine & _
                "This is a test email " & _
                "sending in Excel"
        .Display
    End With
End Sub

3. Prima a tecla «F5» para executar o código e surgirá a caixa de diálogo «Kutools para Excel». Selecione a lista de endereços de e-mail e clique em «OK».

Uma captura de ecrã da caixa de diálogo 'Kutools for Excel' a solicitar a lista de endereços de email

Notas:

1) Se não quiser que a caixa de diálogo acima seja apresentada e pretender especificar diretamente no código o intervalo de Endereço de Email, substitua esta linha:
Set xRg = Application.InputBox(«Please select the addresses list:», «Kutools for Excel», xTxt, , , , , 8)
por
Set xRg = Range("A2:A7")
2) Pode especificar o seu próprio Assunto do Email e corpo nas linhas seguintes:
.Subject = «Test»
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) Para enviar diretamente o email sem abrir a seguinte janela de nova mensagem, terá de substituir 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 da mensagem. Veja a imagem:

Uma captura de ecrã da janela da mensagem de email com todos os endereços de email preenchidos no campo Para


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

O código anterior adiciona todos os endereços de e-mail no intervalo selecionado ao campo Para da janela da mensagem. Se pretender enviar e-mails individualmente para cada endereço listado nas células, sem que os destinatários vejam os endereços uns dos outros, experimente o seguinte script VBA.

1. Na folha de cálculo que contém todos os endereços de e-mail para os quais pretende enviar mensagens, prima as teclas «Alt» + «F11» para abrir a janela «Microsoft Visual Basic para Aplicações».

2. Na janela «Microsoft Visual Basic para Aplicações», clique em «Inserir» > «Módulo» e cole o código seguinte na janela do Módulo (Código).

Código VBA: Enviar e-mails separadamente para cada Lista de Endereços de e-mail nas 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 ative a opção «Microsoft Outlook 16,0 Object Library» e, depois, clique em «OK» para guardar as alterações.

Uma captura de ecrã da caixa de diálogo 'Referências – VBAProject' no Excel com a opção Microsoft Outlook 16.0 Object Library selecionada

4. Prima a tecla «F5» para executar o código e surgirá a caixa de diálogo «Kutools para Excel». Selecione a lista de endereços de e-mail e clique em «OK».

Uma captura de ecrã da caixa de diálogo 'Kutools for Excel' a solicitar a seleção da lista de endereços de email

Notas:

1) Se não quiser que a caixa de diálogo acima seja apresentada e pretender especificar diretamente no código o intervalo de Endereço de Email, substitua esta linha:
Set xRg = Application.InputBox(«Please select the addresses list:», «Kutools for Excel», xTxt, , , , , 8)
por
Set xRg = Range("A2:A7")
2) Pode especificar o seu próprio Assunto do Email e corpo nas linhas seguintes:
.Subject = "Test"
.Body = "Dear " _
        & vbNewLine & vbNewLine & _
        "This is a test email " & _
        "sending in Excel"
3) Para enviar diretamente o email sem abrir as seguintes janelas de mensagem, terá de substituir esta linha:
.Display
por
.Send

Neste exemplo, existem seis endereços de e-mail no intervalo selecionado, pelo que serão criadas automaticamente seis janelas de mensagem do Outlook, cada uma com uma lista distinta de endereços de e-mail no campo Para, conforme ilustrado na imagem seguinte.

Uma captura de ecrã de várias janelas de mensagens do Outlook com endereços de email separados no campo Para

5. Por fim, clique no botão «Enviar» para enviar os e-mails individualmente.


2. Inserir anexo ou assinatura do Outlook em e-mails enviados a partir do Excel (com scripts VBA)

Esta secção mostra-lhe como inserir um anexo ou incluir a assinatura predefinida do Outlook nos e-mails enviados a partir do Excel.

2,1 Inserir Anexo nos e-mails enviados a partir do Excel

Aqui apresentamos os diferentes cenários para inserir um anexo, permitindo-lhe escolher o método que melhor se adapta às suas necessidades. Nesta secção, aprenderá a (clique em qualquer uma das seguintes ligações para aceder ao método correspondente):


2,1.1 Enviar um determinado ficheiro como anexo

Pode utilizar o seguinte código VBA para enviar, diretamente do Excel, um ou mais ficheiros de uma pasta como anexos por correio eletrónico.

1. Prima as teclas «Alt» + «F11».

2. Na janela «Microsoft Visual Basic for Applications» que se abre, clique em «Inserir» > «Módulo» e, de seguida, cole o seguinte código VBA na janela do Módulo (Código).

Código VBA: Enviar ficheiros numa 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

Notas:

1) Na linha «.To = xxx@aaa.com», substitua «xxx@aaa.com» pelo Endereço de Email do seu destinatário;
2) Altere separadamente o Assunto do Email e o corpo da mensagem nas linhas «.Subject = »teste"" e ".HTMLBody = "teste"";
3) Pode adicionar destinatários em Cc e Bcc conforme necessário. Basta adicionar as duas linhas seguintes abaixo da linha «.To = xxx@aaa.com».
.CC = «email address»
.BCC = «email address»

3. Em seguida, clique em «Ferramentas» > «Referências». Na caixa de diálogo «Referências – VBAProject», localize e ative a opção «Microsoft Outlook 16,0 Object Library» e, depois, clique em «OK» para guardar as alterações.

Uma captura de ecrã da caixa de diálogo 'Referências – VBAProject' no Excel com a opção Microsoft Outlook 16.0 Object Library selecionada

4. Prima a tecla «F5» para executar o código; em seguida, abrir-se-á uma janela «Procurar». Selecione os ficheiros que pretende anexar ao correio eletrónico e clique em «OK».

Uma captura de ecrã da janela 'Procurar' para selecionar ficheiros a anexar a um email no Excel

Em seguida, abre-se uma janela de mensagem, onde pode verificar que os ficheiros selecionados aparecem como anexos no campo Anexos.

Uma captura de ecrã da janela de mensagem do Outlook com os ficheiros selecionados apresentados como anexos


2,1.2 Enviar o Planilha Atual como anexo

Se pretender enviar a Planilha Atual como anexo diretamente do Excel, pode utilizar o script VBA nesta secção.

1. Prima as teclas «Alt» + «F11».

2. Na janela «Microsoft Visual Basic for Applications» que se abre, clique em «Inserir» > «Módulo». Em seguida, cole o seguinte código VBA na janela «Módulo (Código)».

Código VBA: Enviar o Planilha Atual como 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 = "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

Notas:

1) Na linha «.To = xxx@aaa.com», substitua «xxx@aaa.com» pelo Endereço de Email real do destinatário. Se precisar de mais do que um Endereço de Email, separe-os com ponto e vírgula.
2) Altere separadamente o Assunto do Email e o corpo da mensagem nas linhas «.Subject = »funcionalidades kte"" e ".Body = " Por favor, verifique e leia este documento."";
3) Nas duas linhas seguintes:
.CC = «email address»
.BCC = «email address»
Se pretender adicionar destinatários em cc e bcc, substitua o texto “«Endereço de Email»” nas linhas pelos Endereço de Email necessários.
Se não precisar dos destinatários em cc e bcc, basta adicionar um apóstrofo 'antes de cada linha.

3. Prima a tecla «F5» para executar o código; em seguida, a Planilha Atual é guardada como uma Pasta de Trabalho do Excel e anexada automaticamente numa janela de mensagem. Veja a captura de ecrã:

Uma captura de ecrã da janela de mensagem do Outlook com a folha de cálculo atual guardada e anexada como um livro do Excel

Nota: O livro anexado, que contém apenas a Planilha Atual, tem o mesmo nome do livro original, ao qual é ainda adicionada a hora de execução do código no nome da pasta de trabalho.


2,1.3 Enviar o Livro de Trabalho Atual como anexo

Depois de aprender o código VBA para enviar a planilha atual como anexo diretamente do Excel, apresentamos agora outro script VBA que permite enviar todo o livro como anexo. Siga os passos abaixo.

1. Prima as teclas «Alt» + «F11».

2. Na janela «Microsoft Visual Basic for Applications» que se abre, clique em «Inserir» > «Módulo» e, de seguida, cole o seguinte código VBA na janela do Módulo (Código).

Código VBA: Enviar o Livro de Trabalho Atual como anexo 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

Notas:

1) Na linha «.To = xxx@aaa.com», substitua «xxx@aaa.com» pelo Endereço de Email real do destinatário. Se precisar de mais do que um Endereço de Email, separe-os com ponto e vírgula.
2) Altere separadamente o Assunto do Email e o corpo da mensagem nas linhas «.Subject = »funcionalidades kte"" e ".Body = " Por favor, verifique e leia este documento."";
3) Nas duas linhas seguintes:
.CC = «email address»
.BCC = «email address»
Se pretender adicionar destinatários em cc e bcc, substitua o texto "Endereço de Email” nas linhas pelos Endereço de Email necessários.
Se não precisar dos destinatários em cc e bcc, basta adicionar um apóstrofo ' antes de cada linha.

3. Prima a tecla «F5» para executar o código; o Livro de Trabalho Atual será então inserido automaticamente na janela de mensagem como anexo. Veja a captura de ecrã:

Uma captura de ecrã da janela de mensagem do Outlook com o livro atual anexado automaticamente


2,1.4 Enviar todo o livro como anexo PDF

A maioria das pessoas costuma guardar uma pasta de trabalho do Excel como um ficheiro PDF e enviá-lo como anexo a outras pessoas. Nesta secção, mostramos-lhe uma forma de enviar mensagens diretamente do Excel, com o livro atualmente aberto anexado automaticamente como PDF — sem precisar de o guardar manualmente nesse formato.

1. Prima as teclas «Alt» + «F11».

2. Na janela «Microsoft Visual Basic for Applications» que se abre, clique em «Inserir» > «Módulo» e cole o seguinte código VBA na janela do módulo (Código).

Código VBA: Enviar todo o livro como anexo 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

Notas:

1) Na linha «.To = xxx@aaa.com», substitua «xxx@aaa.com» pelo Endereço de Email real do destinatário. Se precisar de mais do que um Endereço de Email, separe-os com ponto e vírgula.
2) Altere separadamente o Assunto do Email e o corpo da mensagem nas linhas .Subject = "teste" e .Body = "teste";
3) Nas duas linhas seguintes:
.CC = «Email Address»
.BCC = «Email Address»
Se pretender adicionar destinatários em cc e bcc, substitua o texto "Endereço de Email” nas linhas pelos Endereço de Email necessários.
Se não precisar dos destinatários em cc e bcc, basta adicionar um apóstrofo ' antes de cada linha.
4) O nome do Arquivos PDF será o mesmo que o nome do livro original. Além disso, a hora em que executar o código também será adicionada ao Nome da Pasta de Trabalho. Se não quiser adicionar a marca temporal ao nome do ficheiro, remova & Format(Now, «dd-mmm-yy h-mm-ss») da linha seguinte.
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -[[PH_372]], vbTextCompare) - [[PH_371]])) & Format(Now, «dd-mmm-yy h-mm-ss») & «.pdf»

3. Prima a tecla «F5» para executar o código. O Livro de Trabalho Atual será então inserido automaticamente como anexo em formato PDF numa nova janela de mensagem. Veja a captura de ecrã:

Uma captura de ecrã da janela de mensagem do Outlook com o livro atual anexado como um ficheiro PDF


2,1.5 Enviar o Planilha Atual como anexo PDF

Por exemplo, imagine que tem um livro chamado «Vendas mensais», no qual criou uma tabela de relatório de vendas numa folha denominada «relatório de vendas» e pretende enviar essa folha como um ficheiro PDF aos seus colegas. O código VBA seguinte pode ajudá-lo.

1. Prima as teclas «Alt» + «F11».

2. Na janela «Microsoft Visual Basic for Applications» que se abre, clique em «Inserir» > «Módulo» e cole o seguinte código VBA na janela do módulo (Código).

Código VBA: Enviar o Planilha Atual como anexo 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

Notas:

1) Na linha «.To = xxx@aaa.com», substitua «xxx@aaa.com» pelo Endereço de Email real do destinatário. Se precisar de mais do que um Endereço de Email, separe-os com ponto e vírgula.
2) Altere separadamente o Assunto do Email e o corpo da mensagem nas linhas .Subject = "teste" e .Body = "teste";
3) Nas duas linhas seguintes:
.CC = «Email Address»
.BCC = «Email Address»
Se pretender adicionar destinatários em cc e bcc, substitua o texto "Endereço de Email” nas linhas pelos Endereço de Email necessários.
Se não precisar dos destinatários em cc e bcc, basta adicionar um apóstrofo ' antes de cada linha.
4) O nome do Arquivos PDF será: nome do livro original_nome da folha de cálculo original. Neste caso, o nome do PDF será Vendas mensais_relatório de vendas.

3. Prima a tecla «F5» para executar o código. Em seguida, a Planilha Atual é automaticamente inserida como anexo em Arquivos PDF numa nova janela de mensagem. Veja a captura de ecrã:

Uma captura de ecrã da janela de mensagem do Outlook com a folha de cálculo atual anexada como um ficheiro PDF


2,2 Inserir assinatura do Outlook nas mensagens enviadas a partir do Excel

Tomando o caso anterior como exemplo, ao aplicar o código VBA acima para enviar a planilha atual como anexo em ficheiros PDF a partir do Excel, não é possível incluir automaticamente a assinatura do Outlook na janela de mensagem. Para garantir que a assinatura predefinida do Outlook seja mantida na mensagem enviada a partir do Excel, utilize o método seguinte.

Abaixo estão listados dois códigos VBA.

Código VBA 1: Este código ajuda a preservar a assinatura do Outlook.

Código VBA 2: Este código permite enviar a planilha atual como anexo em PDF.

Código VBA 1: Manter assinatura do Outlook

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

Código VBA 2: Enviar o Planilha Atual como anexo 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, tem de premir as teclas «Alt» + «F11» para abrir a janela do Microsoft Visual Basic for Applications.

2. Na janela «Microsoft Visual Basic for Applications», clique em «Inserir» > «Módulo» e cole o código VBA acima na janela do Módulo (Código).

3. Para manter a assinatura predefinida do Outlook nas mensagens enviadas a partir do Excel, deve modificar o código VBA 2 da seguinte forma:

1) Substitua a linha «.Body» por «código VBA 1»;
2) Mova a linha «.Display» para baixo da linha «With OutlookMail (ou With xMailOut noutros códigos)». Veja a captura de ecrã:

Uma captura de ecrã que mostra o código VBA modificado com a linha .Body substituída e .Display colocada sob With OutlookMail

Eis 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. Prima a tecla «F5» para executar o código. Em seguida, surgirá uma nova janela de mensagem com a Planilha Atual anexada como ficheiro PDF, e a assinatura predefinida do Outlook será inserida automaticamente no final do corpo da mensagem.

Uma captura de ecrã de um email no Outlook com a assinatura predefinida inserida automaticamente no final do corpo do email


3. Envie mensagens automaticamente a partir do Excel assim que uma condição for cumprida (com scripts VBA)

Nos exemplos anteriores, é necessário executar manualmente o código para enviar a mensagem. Caso pretenda que o código seja ativado automaticamente assim que uma determinada condição for cumprida — por exemplo, quando uma célula atingir um valor específico, quando o valor de uma célula for alterado ou quando uma data for alcançada — a mensagem será enviada sem intervenção adicional. Esta secção apresenta as condições mais frequentemente procuradas pelos utilizadores do Excel no Google, para o ajudar a enviar mensagens automaticamente a partir do Excel assim que essas condições forem satisfeitas.

3,1 Enviar automaticamente uma mensagem quando uma célula atingir um determinado valor

Conforme ilustrado na captura de ecrã abaixo, imagine que tem uma tabela de vendas em que a célula D6 contém o total das vendas. Pretende enviar automaticamente uma mensagem ao seu chefe com base nesse valor — por exemplo, disparar uma mensagem sempre que o total das vendas ultrapassar 10 000 €, sem qualquer ação caso o total seja igual ou inferior a esse montante.

1. Na folha de cálculo que contém a tabela de vendas, clique com o botão direito do rato no separador da folha e escolha «Ver código» no menu de contexto.

2. Na janela «Microsoft Visual Basic for Applications» que se abre, cole o seguinte código VBA na janela «Folha (Código)».

Código VBA: Enviar automaticamente uma mensagem quando uma célula atingir 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 = "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

Notas:

1) "D6" é a célula cujo valor servirá de base para o envio do email.
2) «> 10000» é a condição, o que significa que um email será enviado quando o valor em D6 for superior a 10000.
3) «Range(»D6«)» na linha seguinte significa que o corpo do email 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 de Email real do destinatário. Se precisar de mais do que um Endereço de Email, separe-os com ponto e vírgula.
5) Altere o Assunto do Email na linha .Subject = «teste».
6) Nas duas linhas seguintes:
.CC = «Email Address»
.BCC = «Email Address»
Se pretender adicionar destinatários em cc e bcc, substitua o texto "Endereço de Email” nas linhas pelos Endereço de Email necessários.
Se não precisar dos destinatários em cc e bcc, basta adicionar um apóstrofo ' antes de cada linha.

A partir de agora, sempre que o valor na célula D6 exceder 10 000, será exibida uma mensagem conforme ilustrado na captura de ecrã abaixo.

Uma captura de ecrã de um email criado no Outlook quando o valor na célula D6 excede 10000 no Excel


3,2 Enviar automaticamente uma mensagem quando o valor de uma célula for alterado

Conforme ilustrado na captura de ecrã abaixo, suponha que recebe um livro que contém vendas mensais em diferentes folhas de cálculo e o total das vendas numa folha específica. Precisa de verificar o total das vendas e, se este for modificado, enviar o livro de volta ao remetente e informá-lo de que a célula foi alterada.

1. Na folha de cálculo que contém a tabela de vendas, clique com o botão direito do rato no separador da folha e escolha «Ver código» no menu de contexto.

2. Na janela «Microsoft Visual Basic for Applications» que se abre, cole o seguinte código VBA na janela Folha (Código).

Código VBA: Enviar automaticamente uma mensagem quando o valor de uma célula especificada 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

Notas: No código,

1) "B14" no código significa que, quando o valor da célula B14 mudar, será enviado um email.
2) Na linha «.To = xxx@aaa.com», substitua «xxx@aaa.com» pelo Endereço de Email real do destinatário. Se precisar de mais do que um Endereço de Email, separe-os com ponto e vírgula.
3) Altere o Assunto do Email na linha .Subject = «Folha de cálculo modificada».
4) Nas duas linhas seguintes:
.CC = «Email Address»
.BCC = «Email Address»
Se pretender adicionar destinatários em cc e bcc, substitua o texto "Endereço de Email” nas linhas pelos Endereço de Email necessários.
Se não precisar dos destinatários em cc e bcc, basta adicionar um apóstrofo ' antes de cada linha.

A partir de agora, sempre que o valor na célula B14 for alterado, será automaticamente criada uma mensagem do Outlook, tal como ilustrado na captura de ecrã abaixo.

Uma captura de ecrã de um email criado no Outlook quando o valor na célula B14 é alterado


3,3 Enviar automaticamente uma mensagem quando um livro for guardado

Se tiver um livro que precise de partilhar com outras pessoas após modificação, normalmente terá de o guardar, abrir o cliente de correio eletrónico, criar um novo e-mail com o livro anexado, preencher os respetivos campos e enviar a mensagem. Esta secção mostra-lhe um método para criar automaticamente essa mensagem sempre que guardar o livro. Siga estes passos:

1. Prima as teclas «Alt» + «F11» para abrir a janela do Microsoft Visual Basic for Applications.

2. Nesta janela, faça duplo clique em «EsteLivro» no painel «Projeto» e cole o seguinte código VBA na janela «EsteLivro (Código)».

Código VBA: Enviar automaticamente uma mensagem quando um livro for guardado

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

Notas: No código,

1) Na linha «.To = xxx@aaa.com», substitua «xxx@aaa.com» pelo Endereço de Email real do destinatário. Se precisar de mais do que um Endereço de Email, separe-os com ponto e vírgula.
2) Altere separadamente o Assunto do Email e o corpo nas linhas «.Subject = »The workbook has been updated"" and ".Body = "Hi," & Chr([[PH_422]]) & Chr(13) & "O ficheiro foi agora atualizado.«».
3) Nas duas linhas seguintes:
.CC = «Email Address»
.BCC = «Email Address»
Se pretender adicionar os destinatários em cópia (cc) e cópia oculta (bcc), substitua o texto «Endereço de Email» nas linhas pelo(s) Endereço de Email pretendido(s).
Se não precisar dos destinatários em cópia (cc) e cópia oculta (bcc), basta adicionar uma plica ' no início de cada linha.

3. A partir de agora, sempre que guardar o livro ao premir «Ctrl» + «S» ou clicar no botão «Guardar», será automaticamente criada uma mensagem do Outlook. Poderá verificar que o Livro de Trabalho Atual está anexado e que os campos estão preenchidos com o conteúdo especificado. Veja a captura de ecrã:

Uma captura de ecrã que mostra um email do Outlook com o livro atual anexado, pronto para ser enviado automaticamente

Dicas: Se utilizar frequentemente este livro, recomendamos que o guarde como «Livro do Excel Ativado para Macros» para preservar o script VBA para utilização futura. Os passos são os seguintes.

1) Clique em «Ficheiro» > «Guardar Como» e, em seguida, escolha uma pasta para guardar o ficheiro.
2) Na caixa de diálogo «Guardar Como», renomeie o ficheiro conforme necessário na caixa de texto «Nome do ficheiro», selecione «Livro do Excel com Macros Ativadas» em «Especificar Formato de Salvamento» Lista suspensa e, por fim, clique no botão «Guardar». Veja a captura de ecrã:

Uma captura de ecrã da caixa de diálogo 'Guardar Como' no Excel que mostra a opção para guardar o livro como Livro do Excel Ativado para Macros


3,4 Enviar automaticamente uma mensagem a uma hora específica

Imagine que precisa de enviar, todas as sextas-feiras de manhã às 9h, um email com uma pasta de trabalho de atribuição de tarefas — e quer automatizar esse envio diretamente no Excel, sem precisar de interagir manualmente com o cliente de email. Esta secção mostra-lhe exatamente como o fazer.

1. Prima as teclas «Alt» + «F11» para abrir a janela do Microsoft Visual Basic for Applications.

2. Na janela «Microsoft Visual Basic for Applications», clique em «Inserir» > «Módulo» e, de seguida, cole o seguinte código VBA na janela do módulo.

Código VBA1: Enviar o Livro de Trabalho Atual como anexo 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, faça duplo clique em «ThisWorkbook» no painel «Projeto» e cole o seguinte código VBA na janela «ThisWorkbook (Código)».

Uma captura de ecrã do editor de código VBA com o evento 'Workbook_Open' e a função 'Application.OnTime' para agendar o envio de emails

Código VBA 2: Enviar automaticamente um email a uma hora específica

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

Notas:

1) No código VBA 1, «Friday» na linha seguinte significa que o e-mail será enviado automaticamente todas as sextas-feiras;
If Weekday(Date) = vbFriday Then
2) Nos códigos VBA 1 e 2, a hora «09:00:00» significa que o e-mail será enviado às 9h num determinado dia.
Pode alterar o dia e a hora conforme necessário.
3) Quando o código for executado, será criado um e-mail. Se não quiser que a janela de mensagem seja apresentada e pretender enviá-lo diretamente, remova a linha «.Display» do código VBA 1 e elimine a plica antes da linha «.Send».

4. Guarde os códigos e, de seguida, guarde a pasta de trabalho como uma pasta de trabalho do Excel ativada para macros, conforme indicado em seguida.

4,1) Clique em «Ficheiro» > «Guardar Como» e, em seguida, escolha uma pasta para guardar o ficheiro.
4,2) Na caixa de diálogo «Guardar Como», renomeie o ficheiro conforme necessário na caixa de texto «Nome do ficheiro», selecione «Livro do Excel com Macros Ativadas» em «Especificar Formato de Salvamento» Lista suspensa e, por fim, clique no botão «Guardar». Veja a captura de ecrã:

Uma captura de ecrã da caixa de diálogo 'Guardar Como' no Excel que mostra a opção para guardar o livro como Livro do Excel Ativado para Macros

5. Abra a sua pasta de trabalho ativada para macros guardada; um e-mail será então criado ou enviado automaticamente no dia e à hora definidos.


4. Tópicos adicionais

Esta secção reúne outros tópicos que poderá encontrar ao enviar e‑mails a partir do Excel.

4,1 Enviar um intervalo de células a partir do Excel (com script VBA)

Suponha que tem uma tabela de vendas mensais numa folha de cálculo do Excel, como ilustrado na imagem seguinte, e que precisa de a enviar a outras pessoas — quer diretamente no corpo de um e-mail, quer como anexo. Apresentamos-lhe aqui dois métodos para o fazer com facilidade.

4,1.1 Enviar um intervalo como parte do conteúdo do corpo do email a partir do Excel

Pode executar o seguinte código VBA para enviar um intervalo de células como parte do conteúdo do corpo do email a partir do Excel

1. Prima as teclas «Alt» + «F11» para abrir a janela do Microsoft Visual Basic for Applications.

2. Na janela «Microsoft Visual Basic for Applications», clique em «Ferramentas» > «Referências». Em seguida, ative a caixa de seleção «Microsoft Outlook 16,0 Object Library» e clique em «OK» na caixa de diálogo «Referências – VBAProject».

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

Código VBA: Enviar um intervalo de células como parte do conteúdo do corpo do email 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

Notas: No código,

1) Na linha «.To = xxx@aaa.com», substitua «xxx@aaa.com» pelo verdadeiro Endereço de Email do destinatário. Se precisar de mais do que um Endereço de Email, separe-os com ponto e vírgula.
2) Nas duas linhas seguintes:
.CC = «Email Address»
.BCC = «Email Address»
Se pretender adicionar os destinatários em cópia (cc) e cópia oculta (bcc), substitua o texto «Endereço de Email» nas linhas pelo(s) Endereço de Email pretendido(s).
Se não precisar dos destinatários em cópia (cc) e cópia oculta (bcc), basta adicionar uma plica ' no início de cada linha.

4. Prima a tecla «F5» para executar o código. Na caixa de diálogo «Kutools para Excel» que aparece, selecione o intervalo de células que deseja incluir no corpo do e-mail e clique em «OK». Veja a imagem:

Uma captura de ecrã da caixa de diálogo Kutools for Excel onde é selecionado um intervalo de células para enviar como parte do corpo de um email

Em seguida, será criado automaticamente um e-mail no Outlook. Poderá verificar que o intervalo selecionado na folha de cálculo foi inserido no corpo da mensagem. Veja a imagem:

Uma captura de ecrã de um email do Outlook com o intervalo selecionado do Excel inserido no corpo do email


4,1.2 Enviar um intervalo como anexo a partir do Excel

Se precisar de enviar um intervalo de células de uma folha de cálculo como anexo diretamente do Excel, experimente o seguinte código VBA.

1. Prima as teclas «Alt» + «F11».

2. Na janela «Microsoft Visual Basic for Applications» que se abre, clique em «Inserir» > «Módulo» e, de seguida, cole o seguinte código VBA na janela «Módulo (Código)».

Código VBA: Enviar um intervalo como anexo a partir 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 = "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

Notas:

1) Na linha «.To = xxx@aaa.com», substitua «xxx@aaa.com» pelo verdadeiro Endereço de Email do destinatário. Se precisar de mais do que um Endereço de Email, separe-os com ponto e vírgula.
2) Altere separadamente o Assunto do Email e o corpo do e-mail nas linhas «.Subject = "Vendas mensais para 2021"» e «.Body = "Olá, por favor verifique e leia este documento."»;
3) Nas duas linhas seguintes:
.CC = «email address»
.BCC = «email address»
Se pretender adicionar os destinatários em cópia (cc) e cópia oculta (bcc), substitua o texto «Endereço de Email» nas linhas pelo(s) Endereço de Email pretendido(s).
Se não precisar dos destinatários em cópia (cc) e cópia oculta (bcc), basta adicionar uma plica ' no início de cada linha.

3. Prima a tecla «F5» para executar o código. Na caixa de diálogo «Kutools para Excel» que aparece, selecione o intervalo de células que pretende enviar como anexo por e-mail e clique em «OK». Veja a imagem:

Uma captura de ecrã da caixa de diálogo Kutools for Excel onde é selecionado um intervalo de células para enviar como anexo num email

Em seguida, será criado automaticamente um e-mail no Outlook. O intervalo de células selecionado na folha de cálculo é guardado como uma pasta de trabalho do Excel e anexado à janela da mensagem. Veja a imagem:

Uma captura de ecrã de um email do Outlook com o intervalo selecionado do Excel guardado como anexo


4,2 Enviar emails ao clicar num botão no Excel

Se precisar de clicar num botão de comando para ativar uma macro que envie um e-mail a partir do Excel — por exemplo, enviar o Livro de Trabalho Atual como anexo a outras pessoas ao clicar num botão na folha de cálculo —, siga os passos seguintes para o conseguir.

1. Clique em «Programador» > «Inserir» > «Botão de Comando (Controlo ActiveX)» e, de seguida, desenhe um botão de comando na folha de cálculo.

Dica: Se já tiver um botão de comando, ignore este passo.

2. Prima as teclas «Alt» + «F11» para abrir a janela do «Microsoft Visual Basic for Applications». Na janela que surge, clique em «Inserir» > «Módulo» e cole o código VBA — aquele utilizado para enviar o Livro de Trabalho Atual como anexo diretamente do Excel — na janela «Módulo (Código)».

Clique aqui para obter o código.

Nota: Neste caso, o nome da macro que criou no passo 2 é «SendWorkbook».

3. Prima as teclas «Alt» + «Q» para fechar a janela do Microsoft Visual Basic for Applications.

4. Agora, atribua a macro ao botão de comando: clique com o botão direito do rato no botão e selecione «Ver Código» no menu de contexto.

5. A janela «Microsoft Visual Basic for Applications» abre-se, mostrando as duas linhas seguintes na janela «Folha (Código)».

Private Sub CommandButton1_Click()
End Sub

Uma captura de ecrã da janela do Microsoft Visual Basic for Applications que mostra o código CommandButton1_Click

6. Introduza o nome da macro existente no procedimento do botão de comando.

Uma captura de ecrã da edição do código VBA para atribuir uma macro existente ao botão de comando

7. Prima as teclas «Alt» + «Q» para fechar o «Editor do Visual Basic» e, em seguida, clique em «Programador» > «Modo de Design» para desativar o modo de design.

Uma captura de ecrã da desativação do Modo de Estrutura no separador Programador

Agora, basta clicar no botão de comando para enviar um e-mail com o Livro de Trabalho Atual em anexo.


4,3 Enviar emails a partir de uma conta de email específica

Normalmente, ao iniciar um e-mail a partir do Excel com código VBA, o remetente utiliza a conta de e-mail predefinida no Outlook. No entanto, se tiver configurado várias contas no Outlook e pretender usar uma conta específica — em vez da conta predefinida — para enviar e-mails diretamente do Excel, o seguinte código VBA pode ajudá-lo.

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("zxm@addin99.com") Then 'Specify your email account here
    OutlookMail.SendUsingAccount = xAccount
  End If
Next

Como utilizar os códigos VBA apresentados acima?

1) No seu próprio código, deve substituir a linha como «Dim OutlookMail As Object» pelo código VBA 1;
2) Adicione o código VBA 2 abaixo da linha «On Error Resume Next» no seu código. Em seguida, especifique o Endereço de Email que irá utilizar para enviar o e-mail no código VBA 2.

Neste exemplo, vamos configurar uma conta de e-mail específica para enviar o Livro de Trabalho Atual como anexo diretamente do Excel. Siga os passos abaixo.

1. Prima as teclas «Alt» + «F11». Na janela «Microsoft Visual Basic for Applications», clique em «Ferramentas» > «Referências», marque a caixa «Microsoft Outlook 16,0 Object Library» e, de seguida, clique em «OK» na caixa de diálogo «Referências – VBAProject».

Uma captura de ecrã da caixa de diálogo 'Referências – VBAProject' no Excel com a opção Microsoft Outlook 16.0 Object Library selecionada

2. Clique em «Inserir» > «Módulo» e, de seguida, cole o seguinte código VBA na janela «Módulo (Código)».

Código VBA: Enviar o Livro de Trabalho Atual como anexo de email a partir do Excel através de uma conta do Outlook específica

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. Prima a tecla «F5» para executar o código. Surge então uma mensagem de e-mail do Outlook, com o campo «De» já preenchido com a conta de e-mail que especificou no código.


4,4 Enviar um email quando uma data for atingida

Se precisar de enviar um e-mail com base numa Data de Vencimento específica — por exemplo, como ilustrado na imagem seguinte, em que existe uma tabela de projetos e, **quando a Data de Vencimento no intervalo E2:E7 for igual ou inferior a 7 dias a contar de hoje** (assumindo que a data atual é 2022/8/4), um e-mail será automaticamente enviado aos respetivos responsáveis dos projetos a informá-los de que o projeto está prestes a expirar.

1. Na folha de cálculo que contém a tabela de projetos, clique com o botão direito do rato no separador da folha e escolha «Ver código» no menu de contexto.

2. Na janela «Microsoft Visual Basic for Applications» que se abre, cole o seguinte código VBA na janela «Folha (Código)».

Código VBA: Enviar automaticamente um email 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,

1) Nas linhas seguintes, «E2:E7» contém o(s) Data de Vencimento com base no(s) qual(is) enviará e-mails. «C2:C7» contém o(s) Endereço de Email para quem enviará os e-mails. E «D2:D7» contém as observações que irá incluir no corpo do e-mail para notificar os destinatários de que o projeto está prestes a expirar. 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 seguinte significa que o Data de Vencimento tem de ser superior a 1 dia e igual ou inferior a 7 dias a contar de hoje. Pode alterá-la conforme necessário.
If CDate(xRgDateVal) - Date 0 Then
3) Na linha «.To = xxx@aaa.com», substitua «xxx@aaa.com» pelo verdadeiro Endereço de Email do destinatário. Se precisar de mais do que um Endereço de Email, separe-os com ponto e vírgula.
4) Altere o Assunto do Email na linha «.Subject = "Folha de cálculo modificada"».
5) Nas duas linhas seguintes:
.CC = «Email Address»
.BCC = «Email Address»
Se pretender adicionar os destinatários em cópia (cc) e cópia oculta (bcc), substitua o texto «Endereço de Email» nas linhas pelo(s) Endereço de Email pretendido(s).
Se não precisar dos destinatários em cópia (cc) e cópia oculta (bcc), basta adicionar uma plica ' no início de cada linha.

3. Prima a tecla «F5» para executar o código. Se a data de vencimento cumprir as condições definidas, será criado o e-mail correspondente. Neste caso, serão gerados dois e-mails, tal como ilustrado na imagem seguinte.

Uma captura de ecrã de dois emails criados automaticamente com base em condições de correspondência de data de validade no Excel


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

Se é novo no VBA, os métodos anteriores podem não ser fáceis de aplicar. Por isso, recomendamos a funcionalidade Enviar Emails do «Kutools para Excel», com a qual pode enviar e-mails diretamente do Excel em apenas alguns cliques. Siga estes passos:

Kutools para Exceloferece mais de 300 funcionalidades avançadas para simplificar tarefas complexas, potenciando a criatividade e a eficiência.Integrado com capacidades de IA, o Kutools automatiza tarefas com precisão, tornando a gestão de dados descomplicada.Informações detalhadas de Kutools para Excel...         Teste gratuito...
5,1 Crie facilmente uma Lista de Emails que inclua os campos de email que necessita

Antes de utilizar a funcionalidade Enviar Emails, é necessário criar uma Lista de Emails que inclua os campos de email pretendidos. A funcionalidade Criar Lista de Correspondência facilita este processo.

1. Clique em «KUTOOLS PLUS» > «Criar Lista de Correspondência».

2. Na janela «Criar Lista de Correspondência» que se abre, configure-a da seguinte forma:

2,1) Na secção «Selecione as colunas a serem incluídas na lista de correspondência», marque os campos que necessita no seu e-mail;
2,2) Na secção «Anexo», marque um ou mais anexos que possa necessitar;
2,3) Especifique uma localização para colocar o Lista de Emails;
2,4) Clique no botão «Criar». Veja a captura de ecrã:

É então criada uma tabela de exemplo denominada Lista de Emails, conforme ilustrado na imagem seguinte.

3. Agora, substitua os dados originais no exemplo pelos seus próprios dados de campos.

Agora que já criou uma tabela Lista de Emails, prossiga e aplique a funcionalidade «Enviar Emails» para enviar mensagens diretamente do Excel com base nos campos que definiu.

Kutools para Excel– Potencie o Excel com mais de 300 ferramentas essenciais, tornando o seu trabalho mais rápido e fácil, e aproveite as funcionalidades de IA para um processamento de dados mais inteligente e uma maior produtividade.Obtenha Já


5,2 Envie facilmente e-mails incluindo os campos que criou na Lista de Emails

Depois de criar a Lista de Emails ()clique para saber como) com os campos de que poderá precisar nos seus e-mails, já pode enviar mensagens diretamente do Excel utilizando esses mesmos campos.

1. Selecione toda a lista de e-mails e clique em «KUTOOLS PLUS» > «Enviar E-mails».

2. Na caixa de diálogo «Enviar E-mails», proceda à seguinte configuração.

2,1) Os campos são preenchidos automaticamente na caixa de diálogo de cada campo pelos campos que especificou em Lista de Emails;
Sugestão: Se não precisar de um determinado campo neste momento, escolha uma opção em branco na Lista suspensa.
2,2)«Inserir Marcador de Posição» (opcional): Se precisar de inserir informações variáveis no corpo de um e-mail.
Por exemplo, poderá ter de enviar um e-mail a múltiplos destinatários com um nome personalizado para cada um; nesse caso, coloque o cursor no corpo do e-mail onde pretende inserir o marcador de posição, selecione o campo “E: Primeiro Nome” (ou outro campo de nome na sua lista de envio) e, em seguida, clique no botão Inserir «Marcador de Posição»;
Quando os destinatários receberem o e-mail, o corpo da mensagem será idêntico, mas os nomes serão únicos para cada um.
2,3) Elabore o corpo do e-mail conforme necessário;
2,4) Certifique-se de que a caixa «Enviar usando o Outlook» está marcada;
2,5) Clique no botão «Enviar». Veja a captura de ecrã:

3. Em seguida, surge uma caixa de diálogo do «Kutools para Excel» indicando quantos e-mails foram enviados; clique em «OK» para fechá-la.

Sugestão: Aceda à pasta «Itens Enviados» no Outlook para verificar os e-mails enviados.


5,3 Envie facilmente e-mails com corpo em HTML (incluindo hiperligações, imagens, etc.)

Esta funcionalidade Enviar E-mails permite-lhe criar um e-mail em HTML, com hiperligações, imagens, diferentes tamanhos e cores de fonte, entre outros elementos.

Após criar uma lista de e-mails que inclua os campos de e-mail necessários, ao configurar a caixa de diálogo Enviar E-mails, pode enriquecer o conteúdo do corpo com as opções disponíveis na barra de ferramentas.

Veja a imagem abaixo:


5,4 Inserir facilmente a assinatura predefinida do Outlook ao enviar e-mails

No método anterior, mostrámos um código VBA para o ajudar a enviar e-mails com a assinatura predefinida do Outlook. Com a funcionalidade Enviar E-mails, basta ativar uma opção para incluir automaticamente a assinatura predefinida do Outlook nas mensagens enviadas a partir do Excel.

Após criar uma lista de e-mails que inclua os campos de e-mail necessários, clique em **Opções** > **Utilizar definições de assinatura do Outlook** na caixa de diálogo Enviar E-mails.

Nota: Certifique-se de que aparece uma marca de seleção junto à opção «Utilizar definições de assinatura do Outlook».

Quando os destinatários receberem o e-mail, verão a assinatura predefinida do Outlook no final da mensagem.


5,5 Envie facilmente e-mails a partir de uma conta de e-mail específica

Para enviar mensagens diretamente do Excel utilizando uma conta de e-mail específica em vez da conta predefinida, a funcionalidade Enviar E-mails facilita-lhe esta tarefa.

Após criar uma lista de e-mails que inclua os campos de endereço necessários, ao configurar a caixa de diálogo Enviar E-mails, clique em «Opções» > «Enviado de» e selecione a conta de e-mail a partir da qual pretende enviar as mensagens.

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

Clique aqui para saber mais sobre a funcionalidade Enviar E-mails.

Kutools para Excel– Potencie o Excel com mais de 300 ferramentas essenciais, tornando o seu trabalho mais rápido e fácil, e aproveite as funcionalidades de IA para um processamento de dados mais inteligente e uma maior produtividade.Obtenha Já

Em conclusão, enviar e-mails diretamente do Excel é extremamente útil no dia a dia profissional. Este artigo aborda aspetos mais abrangentes sobre o envio de e-mails a partir do Excel; caso conheça outros tópicos ou soluções mais simples, deixe um comentário para que eu possa saber.

As Melhores Ferramentas de Produtividade para o Office

🤖KUTOOLS AI Assistente: Revolucione o Análise de Dados com base em:Execução Inteligente   |  Gerar Código|  Criar fórmulas personalizadas  |  Analisar Dados e Gerar Gráficos|  Invocar Funções Aprimoradas
Funcionalidades Populares:Localizar, Destacar ou Marcar Duplicatas   |  Excluir linhas em branco   |  Combinar Colunas ou Células sem Perder Dados   |   Arredondamento sem usar fórmula...
Super PROC:VLookup com Múltiplos Critérios  |  VLookup com Múltiplos Valores  |   VLookup em Múltiplas Folhas   |   Correspondência Fuzzy....
Lista Suspensa Avançada:Criar Rapidamente Lista de Seleção   |  Lista de Seleção Dependente   |  Lista de Seleção com Múltipla Escolha....
Gestor de Colunas:Adicionar um Número Específico de Colunas|Mover Colunas|Alternar Estado de Visibilidade de Colunas Ocultas|Comparar Intervalos e Colunas...
Funcionalidades em Destaque:Grade de foco   |  Visualização de Design   |Barra de fórmulas aprimorada   | Gestor de Pastas de Trabalho e Folhas   |  Biblioteca de Recursos(Texto Automático)|  Seleção de Data   |  Consolidar Planilhas  |  Encriptar/Descriptografar Células   | Enviar Emails por Lista   |  Super Filtro   |   Filtro Especial(Filtrar Células com Fonte em Negrito/itálico/rasurado...) ...
Principais Conjuntos de Ferramentas 15:12 Ferramentasde Texto(Adicionar Texto,Excluir Caracteres Específicos, ...)|   50+Tiposde Gráfico(Gráfico de Gantt, ...)|   40+ Fórmulas Práticas(Calcular a idade com base na data de nascimento, ...)|   19 Ferramentasde Inserção(Inserir QR Code,Inserir Imagem a Partir do Caminho, ...)|   12 Ferramentasde Conversão(Converter em Palavras,Conversão de moeda, ...)|   7 Ferramentasde Mesclar e Dividir(Mesclar Linhas Avançado,Dividir Células, ...)|... e muito mais
Utilize o Kutools na sua língua preferida – suporta inglês, espanhol, alemão, francês, chinês e mais 40+ idiomas!

Potencie as suas competências no Excel com Kutools para Excel e experimente uma eficiência como nunca antes.Kutools para Excel Oferece mais de 300 funcionalidades avançadas para impulsionar a produtividade e Economizar Tempo.Clique aqui para obter a funcionalidade de que mais precisa...


Office Tab Traz uma interface com separadores para o Office e torna o seu trabalho muito mais fácil

  • Ative a edição e leitura com separadores no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novos separadores da mesma janela, em vez de em janelas separadas.
  • Aumente a sua produtividade em 50 % e elimine centenas de cliques do rato todos os dias!

Todos os suplementos Kutools — num único instalador.

Kutools for Office reúne suplementos para Excel, Word, Outlook e PowerPoint, além do Office Tab Pro, sendo a solução ideal para equipas que trabalham em várias aplicações do Office.

ExcelWordOutlookTabsPowerPoint
  • Pacote tudo-em-um— suplementos para Excel, Word, Outlook e PowerPoint + Office Tab Pro
  • Um instalador, uma licença— configuração em minutos (pronto para MSI)
  • Funciona melhor em conjunto— produtividade simplificada em todas as aplicações do Office
  • Teste gratuito de 30 dias com todas as funcionalidades— sem registo, sem cartão de crédito
  • Melhor relação qualidade-preço— poupe face à compra individual dos suplementos