[Excel]毎日の営業実績メールをボタン一つ押すだけで送信する方法。Gmailバージョン
このnoteでできること
Excelからボタン一つで↓の図のようなGmailを送れる。
ExcelVBAでGmailを送信する方法。
http://www.fastclassinfo.com/entry/vba_gmail_sendmail
↑の記事が超絶わかりやすいです。Gmailを送信するコードの詳細は上記の記事をご覧いただければよいと思います。
なので、↓のようにサンプルコードをコピペします。
コピペしたコードは以下の通りです。
Option Explicit
Sub Gmail_send_textmail()
'''コード1|変数設定
Dim cdoMsg, cdoconf As Object
Dim strbody, kenmei, honbun, credit, tenpu As String
Dim cdoFlds As Variant
Dim k As Long
'''コード2|CDOを利用して作成
Set cdoMsg = CreateObject("CDO.Message")
Set cdoconf = CreateObject("CDO.Configuration")
cdoconf.Load -1
With cdoconf.Fields
.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = "465"
.Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = True
.Item("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
.Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = Range("D2").Value
.Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = Range("D3").Value
.Update
End With
'''コード3|重要度を変更
cdoMsg.Fields.Item("urn:schemas:mailheader:X-Priority") = 1
cdoMsg.Fields.Update
'''コード4|複数の添付ファイル
For k = 13 To 15
If Range("D" & k).Value <> "" Then
tenpu = Range("D" & k).Value
cdoMsg.AddAttachment tenpu
Else
Exit For
End If
Next
If tenpu <> "" Then
tenpu = Right(tenpu, Len(tenpu) - 1)
End If
'''コード5|件名、本文、署名の設定
kenmei = Range("D10").Value
strbody = Range("D11").Value
credit = Range("D12").Value
With cdoMsg
Set .Configuration = cdoconf
.From = Range("D5").Value
.To = Range("D6").Value
.CC = Range("D7").Value
.BCC = Range("D8").Value
.MDNRequested = True
.Subject = kenmei
.htmlbody = strbody
.send
End With
'''コード6|送信日時を取得
Range("D16").Value = Now
End Sub
次に、Excelシートを整えます。
Gmailシートは以下の通り。
日次営業実績シートは以下の通り。
塗りつぶし部分は手打ちです。
E列には以下の通り、関数が入力されております。
'''E2セル'''
=C2-D2
'''E3セル'''
=C3-D3
'''E4セル'''
=C4-D4
'''E5セル'''
=C5-D5
'''E6セル'''
=C6-D6
G列には以下の通り、関数が入力されております。
'''G1セル'''
="<tr>
<th>"&$B1&"</th>
<th>"&$C1&"</th>
<th>"&$D1&"</th>
<th>"&$E1&"</th>
</tr>"
'''G2セル'''
=IF($B2="","","<tr>
<th>"&$B2&"</th>
<th>"&TEXT($C2,"###,###円")&"</th>
<th>"&TEXT($D2,"###,###円")&"</th>
<th>"&TEXT($E2,"###,###円")&"</th>
</tr>
")
'''G3セル'''
=IF($B3="","","<tr>
<th>"&$B3&"</th>
<th>"&TEXT($C3,"###,###円")&"</th>
<th>"&TEXT($D3,"###,###円")&"</th>
<th>"&TEXT($E3,"###,###円")&"</th>
</tr>
")
'''G4セル'''
=IF($B4="","","<tr>
<th>"&$B4&"</th>
<th>"&TEXT($C4,"###,###円")&"</th>
<th>"&TEXT($D4,"###,###円")&"</th>
<th>"&TEXT($E4,"###,###円")&"</th>
</tr>
")
'''G5セル'''
=IF($B5="","","<tr>
<th>"&$B5&"</th>
<th>"&TEXT($C5,"###,###円")&"</th>
<th>"&TEXT($D5,"###,###円")&"</th>
<th>"&TEXT($E5,"###,###円")&"</th>
</tr>
")
'''G6セル'''
=IF($B6="","","<tr>
<th>"&$B6&"</th>
<th>"&TEXT($C6,"###,###円")&"</th>
<th>"&TEXT($D6,"###,###円")&"</th>
<th>"&TEXT($E6,"###,###円")&"</th>
</tr>
")
月次営業実績シートは以下の通り。
塗りつぶし部分は手打ちです。
B2セル, C2セル, D2セルにそれぞれ入力されている関数は以下の通りです。
=SUMIFS(日次営業実績!$C:$C,日次営業実績!$B:$B,月次営業実績!$A2)
=SUMIFS(日次営業実績!$D:$D,日次営業実績!$B:$B,月次営業実績!$A2)
=B2-C2
F列の関数は以下の通りです。
'''F1セル'''
="<tr>
<th>"&$A1&"</th>
<th>"&$B1&"</th>
<th>"&$C1&"</th>
<th>"&$D1&"</th>
</tr>
"
'''F2セル'''
=IF($A2="","","<tr>
<th>"&$A2&"</th>
<th>"&TEXT($B2,"###,###円")&"</th>
<th>"&TEXT($C2,"###,###円")&"</th>
<th>"&TEXT($D2,"###,###円")&"</th>
</tr>
")
さて、本文の作成を行います。
↑の図をご覧になって、すでにお気づきかと存じますが、今回はHTML形式のメールを作成します。
HTMLメールのほうが、何かと使い勝手が良いです。
図のように、GmailシートのD11セルに下のコードをコピペします。
="<html>
<body>
<h3>本日の営業実績</h3>
<table>
"
&日次営業実績!$G1&VLOOKUP(TODAY(),日次営業実績!$A:$G,7,0)&
" </table>"
&
"
<h3>今月の営業実績</h3>
<table>
"
&月次営業実績!$F1&月次営業実績!$F2&
" </table>
</body>
</html>"
最後に送信ボタンをつくります。
Excelの開発タブ>挿入>ボタン(フォームコントロール)から作成できます。
ボタンをシートの適当なところに作成すると下のようなマクロ登録画面が出てきます。
今回つくったGmail送信マクロを選択し、OKを押します。
これで完成です!
ボタンを押してみると、メールが送られてきているのが確認できるはずです。
活用方法
まず、To、Cc、Bccのセルに報告先メールアドレスを入力します。
営業の佐藤さんは、毎日日次営業実績のシートにご自身の営業実績を入力します。
入力が完了したら、Gmailシートのボタンを押します。
以上、[Excel]毎日の営業実績メールをボタン一つ押すだけで送信する方法。Gmailバージョンでした。
いいなと思ったら応援しよう!
よろしければサポートお願いします!頂いたサポートはクリエイターとしての活動に使わせていただきます!