【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しましょう!
時間を有効に使えるようになれば、仕事は楽になるし、新しいことへも挑戦できます。
とても良いことですよね!