_Excel_毎日の営業実績メールをボタン一つ押すだけで送信する方法_Gmailバージョン

[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バージョンでした。

よろしければサポートお願いします!頂いたサポートはクリエイターとしての活動に使わせていただきます!