quinta-feira, 13 de maio de 2010

Inserindo assinatura no Outlook - VBA

Ultimamente o Outlook tem sido o "alvo" das minhas necessidades de automatização...
Segue código para inserir assinatura numa mensagem criada via VBA.
Detalhe importante: o formato do e-mail deve ser HTML.

;-)



Option Explicit
Dim assinatura As Variant

Public Function pega_assinatura(ByVal sFile As String) As String
'Dick Kusleika
Dim fso As Object
Dim ts As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(sFile).OpenAsTextStream(1, -2)
pega_assinatura = ts.readall
ts.Close
End Function

Sub Cria_mensagem_HTML()
'Creates a new e-mail item and modifies its properties.

Dim olapp As Outlook.Application
Dim objMail As MailItem
Set olapp = Outlook.Application
'Create mail item
Set objMail = olapp.CreateItem(olMailItem)

assinatura = pega_assinatura("C:\Documents and Settings\" & _
Environ("username") & "\AppData\Roaming\Microsoft\Assinaturas\Paulo.htm")

With objMail
'Set body format to HTML
'a tag
quebra linha
'a tag formata o texto para negrito
.BodyFormat = olFormatHTML
.HTMLBody = "Texto " & assinatura
.Display
End With

End Sub

4 comentários:

Anônimo disse...

Kazu, atualmente estou usando uma macro para enviar emails da minha planilha execel com os dados do formulario... porem reparei q em alguns outlooks a macro da erro em "OLApp.CreateItem(olMailItem)" sabe me ajudar??
segue macro inteira abaixo..

Dim OLApp As Object
Dim olMail As Object
Dim CurrFile As String

Set OLApp = CreateObject("Outlook.Application")
Set olMail = OLApp.CreateItem(olMailItem)


With olMail
.To = "rsilveira@ecrel.com.br"
.CC = ""
.Subject = UserForm3.TextBox2.Value
.body = UserForm3.TextBox3.Value

.Display
SendKeys ("%r")

End With

Set olMail = Nothing
' Set OLApp = Nothing



MsgBox "Obrigado, em breve retornarei seu e-mail!"

Unload Me


segue meu email : rodrigorsilver@hotmail.com

Kazu disse...

Olá!

Qual a mensagem de erro que dá?

abs!

Anônimo disse...

Olá,

E para substituir o nome da assinatura,no caso "Paulo" por uma variavel que funcione para qualquer pessoa?

Unknown disse...

E se o login de rede e nome da assinatura for uma variável? Tem como fazer? Por exemplo, tenho uma planilha que envia e-mail, porém mais de uma pessoa usa esta planilha e precisa que a assinatura apareça com o nome de quem está enviando... tem como fazer isto?

Pesquisar este blog

Arquivo do blog

Quem sou eu

Minha foto
Administrador de Empresas/Técnico em Processamento de Dados. Microsoft Office User Specialist - Excel Proficient. Pós-graduado em Business Intelligence.