Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador automatic. Mostrar todas as postagens
Mostrando postagens com marcador automatic. Mostrar todas as postagens

VBA Outlook - Como enviar um e-mail com uma assinatura dinâmica - How to send an email with an automatic signature


Imagine-se mudando a sua assinatura eletrônica dependendo da empresa, cliente, com quem está trocando mensagem. 
Dependendo do conteúdo que estiver enviando como um relatório, um Dashboard, etc...
Recurso útil? Talvez não, mas um excelente modo de aprimorar seu conhecimento sobre o MS Outlook.
Sub MailWithSignat()

    Dim olMailItem As MailItem
    Dim ns As NameSpace
    Dim olRecips As Recipient
    Dim tmpRecips As String
    
    
    Set ns = Application.Session
    
    If Not ns Is Nothing Then
        ns.Logon , , False, False
    End If
    
    Set olMailItem = Application.CreateItem(olMailItem)
    
'   Let olMailItem.Body = "Body of Test Email"
    Let tmpRecips = InputBox("Enter the recipients separated by ;")
    
    Set myRecips = myMailItem.Recipients.Add(tmpRecips)
    
    Let olRecips.Type = olTo
    Let tmpRecips = InputBox("Enter the CC recipients separated by ;")
    
    If InStr(tmpRecips, "@") Then
        Set olRecips = myMailItem.Recipients.Add(tmpRecips)
        Let olRecips.Type = olCC
    End If
    
    Let tmpRecips = InputBox("Enter the BCC recipients separated by ;")
    
    If InStr(tmpRecips, "@") Then
        Let Set olRecips = olMailItem.Recipients.Add(tmpRecips)
        Let olRecips.Type = olBCC
    End If
    
    Set olRecips = Nothing
    
    olMailItem.Subject = "Subject of Test Email"
    
    If Len(Dir("c:\\TestFile.txt")) Then
        olMailItem.Attachments.Add "c:\\TestFile.txt"
    End If
    
    olMailItem.Display
    
    Let olMailItem.Body = "Body of Test Email" & myMailItem.Body
    
    olMailItem.Send
End Sub 


Tags: VBA, Outlook, signature, automatic, automation, mail, send, signature


Inline image 1

VBA Outlook:Inserindo Assinatura programaticamente.



Sua assinatura no MS Outlook pode ser personalizada via VBA. Desse modo, caso trabalhe com diversos cliente, poderá inserir o código abaixo em cada máquina onde utilizar o MS Outlook.

Para esta aplicação faz-se necessário as refências mostradas:



Sub InMySig()
' Author:         Date:            Contact:
' André Bernardes 02/05/2009 09:15 bernardess@gmail.com
' Insere assinatura.

Call InSignature ("Bernardes")
End Sub

Sub InSignature (strSigName As String)
' Author: Date: Contact:
' André Bernardes 02/05/2009 09:15 bernardess@gmail.com
' Atenção ao "Nome da assinatura", este precisa ser igual ao que aparece
' nos menus e caixas de diálogo.

Dim objItem As Object
Dim objInsp As Outlook.Inspector

' Precisa que a referência ao Microsoft Office Word esteja pronta.
Dim objDoc As Word.Document
Dim objSel As Word.Selection

' Precisa que a referência ao Microsoft Office esteja pronta.
Dim objCB As Office.CommandBar
Dim objCBP As Office.CommandBarPopup
Dim objCBB As Office.CommandBarButton
Dim colCBControls As Office.CommandBarControls

On Error Resume Next

Set objInsp = Application.ActiveInspector

If Not objInsp Is Nothing Then

Set objItem = objInsp.CurrentItem

If objItem.Class = olMail Then ' Caso o editor seja WordMail.
If objInsp.EditorType = olEditorWord Then
' Nesta opção ativa a caixa de diálogo de segurança do Outlook.
Set objDoc = objInsp.WordEditor
Set objSel = objDoc.Application.Selection

If objDoc.Bookmarks("_MailAutoSig") Is Nothing Then
objDoc.Bookmarks.Add Range:=objSel.Range, Name:="_MailAutoSig"
End If

objSel.GoTo What:=wdGoToBookmark, Name:="_MailAutoSig"

Set objCB = objDoc.CommandBars("AutoSignature Popup")

If Not objCB Is Nothing Then
Set colCBControls = objCB.Controls
End If
Else ' Caso o editor não seja o WordMail.
' Acessa o menu 'Insert | Signature'.
Set objCBP = Application.ActiveInspector.CommandBars.FindControl(, 31145)

If Not objCBP Is Nothing Then
Set colCBControls = objCBP.Controls
End If
End If
End If

If Not colCBControls Is Nothing Then
For Each objCBB In colCBControls

If objCBB.Caption = strSigName Then
objCBB.Execute

Exit For
End If

Next
End If
End If

Set objInsp = Nothing
Set objItem = Nothing
Set objDoc = Nothing
Set objSel = Nothing
Set objCB = Nothing
Set objCBB = Nothing
End Sub

Tags: Bernardes, VBA, Office, Outlook, insert, automatic, signature, assinatura


André Luiz Bernardes
A&A® - Work smart, not hard.

diHITT - Notícias