Cómo simplificar las tareas de rutina usando VBA

¡Hola, Habr! Soy Sergey Chebarev, analista del equipo de visualización de datos de Severstal-Infocom, y hoy te contaré cómo puedes automatizar tu rutina de trabajo usando VBA y aplicaciones de Office. VBA (Visual Basic para aplicaciones) es una versión simplificada de Visual Basic, integrada en muchos productos de Microsoft Office y, en consecuencia, estos productos pueden ser amigos entre sí.





 La aplicación más obvia de VBA (que todavía se llama macros a menudo y no del todo correctamente) es la automatización de tareas típicas con muchos pasos repetitivos que toman mucho tiempo para hacer con las manos, aburridos y plagados de errores de fatiga. Consideremos una de estas tareas.





Crea eventos en Outlook a través de Excel

Entonces, tengo una tarea: necesito crear eventos en el calendario y enviar invitaciones a los usuarios con datos para iniciar sesión en el servidor de terminal. 





No parece muy difícil a primera vista, pero:





  • Las invitaciones deben enviarse desde un buzón compartido





  • El cuerpo de la invitación debe contener el estilo de diseño corporativo.





  • Existe un límite en la cantidad de usuarios en el servidor de terminal por día, por lo que debe realizar un seguimiento de la cantidad 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.999Exit For
        End If
    Next oAppointmentItem

      
      





. , , , :





 





, ​





3.





, :





 





  , :





, , , . .





, . VBA , . , , .





, . , Excel. , , Outlook. Excel .





, , .








All Articles