Bonjour Habr ! Je suis Sergey Chebarev, analyste dans l'équipe de visualisation de données de Severstal-Infocom, et aujourd'hui je vais vous expliquer comment vous pouvez automatiser votre routine de travail à l'aide des applications VBA et Office. VBA (Visual Basic pour Applications) est une version simplifiée de Visual Basic, intégrée à de nombreux produits Microsoft Office et, par conséquent, ces produits peuvent être amis les uns avec les autres.
L'application la plus évidente de VBA (qui est encore souvent et pas tout à fait correctement appelée macros) est l'automatisation de tâches typiques avec de nombreuses étapes répétitives qui prennent beaucoup de temps à faire avec les mains, ennuyeuses et semées d'erreurs de fatigue. Considérons l'une de ces tâches.
Créer des événements dans Outlook via Excel
J'ai donc une tâche : je dois créer des événements dans le calendrier et envoyer des invitations aux utilisateurs avec des données pour se connecter au serveur de terminaux.
Cela ne semble pas très difficile à première vue, mais :
Les invitations doivent être envoyées à partir d'une boîte aux lettres partagée
Le corps de l'invitation doit contenir le style corporate design
Il y a une limite sur le nombre d'utilisateurs sur le serveur de terminaux par jour, vous devez donc garder une trace du nombre d'événements
, 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 .
, , .