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.999 ‘
Exit For
End If
Next oAppointmentItem
. , , , :
,
3.
, :
, :
, , , . .
, . VBA , . , , .
, . , Excel. , , Outlook. Excel .
, , .