【EXCEL VBA】outlookメール作成。to,cc,bccの複数宛先セルの設定方法

スポンサーリンク

仕事でEXCELを使う方は多いと思います。

毎日似たようなデータ更新があって、チェック後に関係部署へ添付資料を付けてメール送信・・。

私にも同じような定型業務があります。

最後にメールを送信する際にたまに宛先アドレスに追加更新があり、エクセル原本のアドレス帳を毎回参照してメールを送らなければならい煩わしさ・・。

何とか少しでも自動化できないか、VBAを使って自動メール作成を検討してみました。

VBAは書籍を中心に勉強中ですので、誤りがあったり、もっと良い方法もあるかもしれませんがご参考にしていただけると幸いです。(自身の備忘録みたいなもんです。)

 

★ TECH::CAMPの即戦力エンジニア養成プログラム【TECH::EXPERT】

 

【EXCEL VBA】outlookメール作成。to,cc,bccの複数宛先セルの設定方法

エクセルのアドレス帳に保存されている宛先にメール設定をして定型本文や添付ファイルを付けてメール作成をするプログラムです。

①別に保存されているエクセルのアドレス帳を起動させ
②TO,CC,BBCに対応したメールアドレスを取得し
③outlookメールに設定する
④ついでに添付ファイルも設定

 

 


Sub outlookメール作成()
'OUTLOOK Mailで必要な宣言
Dim objMail As New Outlook.Application
Dim myMail As Outlook.MailItem
Set myMail = objMail.CreateItem(olMailItem)

'TO、CC、BCC設定を格納するための配列を宣言
Dim TO_add() As Variant
Dim CC_add() As Variant
Dim BCC_add() As Variant

'for分のループで必要な宣言
Dim i As Long
Dim x As Long
Dim y As Long
Dim z As Long

'アドレス帳のエクセルを開くための宣言
Dim frWB As Workbook
Dim Rngrow As Long


'アドレス帳を展開
Address = "エクセルのアドレス帳のファイルパス\address.xlsx"
Set frWB = Workbooks.Open(Address)

'アドレス帳のヘッダー行を除いたデータをRngへ格納
Set Rng = Range("A2").CurrentRegion.Offset(1)

'Rngデータの行数をRngrowへ格納
Rngrow = Range("A2").CurrentRegion.Offset(1).Row

'要素数を定義していない配列に要素数を設定
ReDim TO_add(0 To Rngrow)
ReDim CC_add(0 To Rngrow)
ReDim BCC_add(0 To Rngrow)

x = 0
y = 0
z = 0

For i = 1 To Rng.Rows.Count - 1

'TOの場合は、TO_add(x)の配列に格納
If Rng.Cells(i, 1).Value = "TO" Then
    'MsgBox Rng.Cells(i, 2).Value
    TO_add(x) = Rng.Cells(i, 2)
    x = x + 1

'CCの場合は、CC_add(y)の配列に格納
ElseIf Rng.Cells(i, 1).Value = "CC" Then
    CC_add(y) = Rng.Cells(i, 2)
    y = y + 1

'BCCの場合は、BCC_add(z)の配列に格納
Else: Rng.Cells(i, 1).Value = "BCC"
    BCC_add(z) = Rng.Cells(i, 2)
    z = z + 1
End If
Next i

'配列をコンマ区切りに変更して格納
send_to = Join(TO_add, ",")
send_cc = Join(CC_add, ",")
send_bcc = Join(BCC_add, ",")

    
'メールの作成
With myMail
.To = send_to       'TO設定
.CC = send_cc       'CC設定
.BCC = send_bcc     'BCC設定

'件名を設定
.Subject = "件名を表示"

'本文を設定
.Body = "本文を表示"

'添付ファイルの設定
.Attachments.Add "添付ファイルのパス/添付ファイル" 
.Display

End With
End Sub

 

アドレス帳のTOやCC、BCCが追加削除されても振り分けてくれます。

また、件名や本文に関しても毎回同じ内容ならば、特定のセルに記載しておいて値を設定してあげればよいと思います。

参考にしていただければ幸いです。

 

 

【EXCEL VBA】outlookメール作成。to,cc,bccの複数宛先セルの設定方法|まとめ

今回このVBAのプログラムをベースにメールの自動作成を作って個人的に業務で活用しています。

僅かですけど時間の節約になりますし、コピペ間違いの改善にもつながるので小さな改善になっています。

ゴリゴリ難しいVBAはまだまだ難しいですが、毎日の単調なデータ作成の部分に関しては、VBAを使ってこれからも時短と労力軽減を目指していこうと思う。

 

未経験のITエンジニア転職なら【TECH::EXPERT】

 

 

関連 【MOS Access資格】難易度や勉強時間は?独学で受かる勉強方法など

【MOS Access資格】難易度や勉強時間は?独学で受かる勉強方法など
ゆるく資格取得を趣味としている私ですが、MOS(マイクロソフトオフィススペシャリスト) Accessの資格を取得した時のエピソードです。 仕事でAccessを使うことが少しあるため、知識を深めるためにも受けてみようと思ったのが...

関連 【独学】オラクルマスターブロンズはいらない?再受験無料期間や難易度・勉強時間など

【独学】オラクルマスターブロンズはいらない?再受験無料期間や難易度・勉強時間など
オラクルマスターブロンズ(ORACLE MASTER BRONZE)の資格を受けました。 就職や転職などがきっかけで、新しいコトを目指すことになった!という人も多いのではないでしょうか。 私はこれまではオラクル(ORAC...

関連 【独学で合格】ウェブデザイン技能検定2級(国家資格)は意味ない?就職や転職の反応は?

【独学で合格】ウェブデザイン技能検定2級(国家資格)は意味ない?就職や転職の反応は?
趣味と副業のブログ運営でウェブ関連の知識を深めている私。 今回は「ウェブデザイン技能士」という国家資格にチャレンジしてみました。 ウェブデザイン技能検定とは、国家検定制度である技能検定制度のひとつで、Web業界に関する資...

 

タイトルとURLをコピーしました