Notifications
Clear all

Programar no Excel VBA para Microsoft Outlook

4 Posts
2 Usuários
0 Reactions
2,411 Visualizações
depoisteconto
(@depoisteconto)
Posts: 183
Estimable Member
Topic starter
 

Antigos espíritos do bem, trago-lhes uma pergunta: :mrgreen:

Já ouvi dizer que é possível mandar email do excel, saindo pelo Outlook.
É possível inserir um compromisso no Microsoft Outlook por um formulário feito no Excel com VBA?

Obs: Só para lembrar, esse compromisso no Microsoft Outlook é feito através do calendário blz.

Ambos 2007.

Agradeço qualquer contribuição.

At

 
Postado : 20/09/2012 11:57 am
depoisteconto
(@depoisteconto)
Posts: 183
Estimable Member
Topic starter
 

Algum vestígio, alternativa...

 
Postado : 21/09/2012 5:57 am
Lovera
(@lovera)
Posts: 90
Trusted Member
 

Primeiro tu vai no ferramentas, depois referencias do VBA, e marca a caixinha que tiver Microsoft Outlook.
Tambem só funciona se o outlook já estiver aberto. Se não tem que forçar a abertura com o Shell

Sub Agendamento()

Dim objOApp As New Outlook.Application 'estamos abrindo a instancia do outlook
Dim objAppt As AppointmentItem 'o agendamento é chamado de appointmentittem vale a pena ver o help F1 q mostra as propriedades desse objeto
Dim Data As Date
Dim Hora As Date
Dim email1 As String

Data = "XX/XX/XXXX" 'coloca a data q tu quiser
Hora = TimeValue("XX:XX:XX") 'coloca a hora q tu quiser
email1 = "maluf@melhorcandidato.com.br" 'coloca a quantidade de e-mails que tu quiser

Set objOApp = New Outlook.Application 'setando a criação do objeto outlook
Set objAppt = objOApp.CreateItem(olAppointmentItem) 'dentro do outlook criando o objeto appointmentittem

With objAppt 'aqui q vc lança as configurações do compromisso
            .RequiredAttendees = "email1;email2" 'aqui q vc coloca a quantidade de emails q vc quiser da cambada q vai participar desse compromisso
            .Subject = "Encontro dos manés" 'o titulo do compromisso, ou vc pode jogar uma variavel q armazena o valor de uma celula
            .Importance = 2 'na hora q vc digitar aparece a listinha de possibilidades o 2 é importancia alta
            .Start = Data & " " & Hora 'quando q esse compromisso vai iniciar
            '.End = "qq coisa" aqui eu não dei um final de compromisso mas vc declara mais duas variaveis uma de data e hora para o termino. Se deixar em branco o outlook assume o intervalo de 30 minutos.
            .ReminderMinutesBeforeStart = 15 'lembrar em minutos antes do compromisso começar
            .Body = "Vamos discutir quem é o maior mané de todos os tempos" 'o texto e as informações que vc quer que apareçam no corpo do compromisso
            '.ResponseRequested = True ' se vc quiser a resposta da galera sobre o agendamento se não quiser é so colocar nada
            .Save 'salva no seu calendario
            .Send 'envia o compromisso
End With

MsgBox "Compromisso agendado em " & Data & " " & Hora, vbInformation

Set objOApp = Nothing 'zerando os objetos, mas como é objeto zera eles com nothing e não com o empty
Set objAppt = Nothing

End Sub

O interessante é que se vc já tiver um compromisso nessa data e hora, é feito esse novo agendamento mas o outlook não envia as mensagem pq meio q ele fica em duvida com os compromissos. Eu geralmente mando ele fazer a busca e se não tiver nada ele agenda, se tiver um compromisso ele soma mais uns 30 minutos e se não tiver nada ele agenda se tiver de novo volta o looping somando mais 30 minutos.

 
Postado : 24/09/2012 7:35 pm
depoisteconto
(@depoisteconto)
Posts: 183
Estimable Member
Topic starter
 

Cara, muito bom, obrigado. Desculpe não responder antes mas é que estava fora sem comunicação com o mundo rsrs.

Obrigado denovo.

At

 
Postado : 04/10/2012 12:55 pm