VBA を使用してルーチン タスクを簡素化する方法

こんにちは、ハブルです!私は Severstal-Infocom のデータ視覚化チームのアナリストであるセルゲイ チェバレフです。今日は、VBA と Office アプリケーションを使用して作業ルーチンを自動化する方法を説明します。VBA (Visual Basic for Applications) は Visual Basic の簡易版であり、多くの Microsoft Office 製品に組み込まれているため、これらの製品は互いにフレンドになることができます。





 VBA の最も明白な用途 (まだマクロと呼ばれることが多く、正しくはありません) は、手で行うのに長い時間がかかり、退屈で疲労エラーでいっぱいの反復的なステップを伴う典型的なタスクの自動化です。これらのタスクの 1 つを考えてみましょう。





Excel 経由で Outlook でイベントを作成する

カレンダーでイベントを作成し、ターミナル サーバーにログインするためのデータを含む招待状をユーザーに送信する必要があります。 





一見、それほど難しくないように思えますが、次のようになります。





  • 招待状は共有メールボックスから送信する必要があります





  • 招待状の本文には、企業のデザイン スタイルを含める必要があります。





  • ターミナル サーバーの 1 日あたりのユーザー数には制限があるため、イベントの数を追跡する必要があります。





, 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