Olá, Habr! Sou Sergey Chebarev, analista da equipe de visualização de dados da Severstal-Infocom, e hoje direi como você pode automatizar sua rotina de trabalho usando aplicativos VBA e Office. VBA (Visual Basic for Applications) é uma versão simplificada do Visual Basic, incorporada a muitos produtos do Microsoft Office e, portanto, esses produtos podem ser amigos uns dos outros.
A aplicação mais óbvia do VBA (que ainda é frequentemente e não muito corretamente chamada de macros) é a automação de tarefas típicas com muitos passos repetitivos que demoram muito para fazer com as mãos, entediantes e repletos de erros de fadiga. Vamos considerar uma dessas tarefas.
Crie eventos no Outlook via Excel
Portanto, tenho uma tarefa: preciso criar eventos no calendário e enviar convites aos usuários com dados para fazer logon no servidor de terminal.
Não parece muito difícil à primeira vista, mas:
Os convites devem ser enviados de uma caixa de correio compartilhada
O corpo do convite deve conter o estilo de design corporativo
Há um limite para o número de usuários no servidor de terminal por dia, então você precisa controlar o número de eventos
, Outlook , , , , . .
, Excel, Outlook VBA?
.
1. Excel
« », « Microsoft Exchange» , . PowerQuery (, ). .
, , . List.Dates:
, , 21 :
2 . “ ” “” , , “” “ ”. :
*, .
«Subject», «Location» « », , , : , «», — «». « » . PowerQuery :
! “ ”, .
2. Outlook
VBA Outlook. “” Excel VisualBasic:
, :
, « », , «»:
Outlook GetObject("Outlook.Application"). GetObject — VBA. . Microsoft.
. , .
subjectStr = " " - ‘ ()
For Each oAppointmentItem In objNavFolder.Folder.Items
If InStr(oAppointmentItem.Subject, subjectStr) > 0 Then
Set N = oAppointmentItem
N.Copy ‘
N.Display
N.Location = Cells(b, 2) ‘
N.Subject = Cells(b, 1) ‘
N.Start = Cells(b, 3) + 0.33333 ‘
N.End = Cells(b, 3) + 0.999 ‘
Exit For
End If
Next oAppointmentItem
. , , , :
,
3.
, :
, :
, , , . .
, . VBA , . , , .
, . , Excel. , , Outlook. Excel .
, , .