【VBA】メールを自動化して作業効率を爆上げ|案内メール自動化|業務効率化
VBAでメールを自動作成するコードです。
会議などの開催案内など毎回作成するのは面倒ですよね?
面倒な作業はマクロで自動化して作業効率を爆上げしましょう!
会議開催などの案内メール作成をボタン一つで行えるVBAコードを作ってみました。
コードを少し修正すればいろいろな応用ができますよ!
VBAコードをmoduleにコピペしてもらい、Excelに下記の様に準備してもらえばメールの自動作成ができると思います。
セルの位置が変わるとマクロがうまく動作しないのでご注意を。
送信先のリストを選択することで、送信先を簡単に変更できます。
本文や件名が定分型でほぼ確定している連絡などは使い回しができます。
開催場所や時間などは都度変更して使ってください。
不要な部分があればそこだけコードを無効化しておいてもらえばOKです。
VBAで[Outlook]を操作するためには、下記の設定をはじめに行ってください。
開発タブからVBAを開き、[ツール]⇨[メニュー]⇨[参照設定]を開きます。
表示された[参照設定 – VBAProject]の[参照可能なライブラリ ファイル]の
一覧より、[Microsoft Outlook 1x.0 Object Library]のチェック ボックスを
オンにします。これで準備は完了です。あとは下記のコードをコピペすればOK!
Sub Mail作成() Dim add1 As String Dim SJ, MB, age1, age2, age3, X, Y As String Dim oapp As Outlook.Application Dim mitem As Outlook.MailItem Dim BN, SN As String Dim ANS As Integer On Error GoTo ErrMsg ANS = MsgBox("メールを作成しますか?", _ vbYesNo + vbQuestion + vbDefaultButton2, "作成") If ANS = vbYes Then Application.ScreenUpdating = False BN = ActiveWorkbook.Name SN = ActiveSheet.Name If Range("B4").Value = "" Then MsgBox ("グループを選択してください") Exit Sub ElseIf Range("B4").Value = "グループA" Then add1 = Range("C8").Value ElseIf Range("B4").Value = "グループB" Then add1 = Range("C9").Value ElseIf Range("B4").Value = "グループC" Then add1 = Range("C10").Value End If SJ = Range("C11").Value '件名 MB = Range("C12").Value '本文 age1 = Range("C13").Value '議題1 age2 = Range("C14").Value '議題2 age3 = Range("C15").Value '議題3 X = Range("C16").Value '開催日 Y = Range("C17").Value '場所 Set oapp = CreateObject("Outlook.Application") Set mitem = oapp.CreateItem(olMailItem) With mitem .BodyFormat = 2 .To = add1 .Subject = SJ .HTMLBody = "各位" & "<br>" & "<br>" & _ MB & "<br>" & "<br>" & "【議題】" & "<br>" & _ age1 & "<br>" & age2 & "<br>" & age3 & "<br>" & "<br>" & _ "開催日:" & X & "<br>" & "<br>" & _ "場所:" & Y & "<br>" & "<br>" & "送信者名" .Display End With Set oapp = Nothing Set mitem = Nothing Application.ScreenUpdating = True Else MsgBox "キャンセルしました" Exit Sub End If ErrMsg: Select Case Err.Number Case 0 Exit Sub Case Else MsgBox "エラーが発生しました" _ & vbCrLf & "エラー番号" & Err.Number _ & vbCrLf & Err.Description End Select End Sub
毎回同じ様な業務はマクロで自動化して効率UPしましょう!
時間を有効に使えるようになれば、仕事は楽になるし、新しいことへも挑戦できます。
とても良いことですよね!