Cara menyederhanakan tugas rutin menggunakan VBA

Halo, Habr! Saya Sergey Chebarev, seorang analis di tim visualisasi data Severstal-Infocom, dan hari ini saya akan memberi tahu Anda bagaimana Anda dapat mengotomatiskan rutinitas kerja Anda menggunakan aplikasi VBA dan Office. VBA (Visual Basic for Applications) adalah versi sederhana dari Visual Basic, dibangun ke dalam banyak produk Microsoft Office, dan karenanya, produk ini dapat berteman satu sama lain.





 Aplikasi VBA yang paling jelas (yang masih sering dan tidak cukup tepat disebut makro) adalah otomatisasi tugas-tugas umum dengan banyak langkah berulang yang memakan waktu lama untuk dilakukan dengan tangan Anda, membosankan dan penuh dengan kesalahan kelelahan. Mari kita pertimbangkan salah satu tugas ini.





Buat acara di Outlook melalui Excel

Jadi, saya punya tugas: Saya perlu membuat acara di kalender dan mengirim undangan ke pengguna dengan data untuk masuk ke server terminal. 





Kedengarannya tidak terlalu sulit pada pandangan pertama, tetapi:





  • Undangan harus dikirim dari kotak surat bersama





  • Badan undangan harus memuat gaya desain perusahaan





  • Ada batasan jumlah pengguna di server terminal per hari, jadi Anda perlu melacak jumlah acara





, 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