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

スポンサーリンク

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

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

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

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

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

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

 

関連 【EXCEL VBA】セル範囲を図として貼り付け「CopyPicture」時短テク

★ 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を使ってこれからも時短と労力軽減を目指していこうと思う。

 

「Excel、なんとなく使ってる…」そんなあなたに!

MOS資格で、スキルを“見える化”しちゃいましょう。
合格率97.3%の「ハロー!パソコン教室」なら、初心者でも安心のわかりやすさ。
映像+テキスト+練習問題で、無理なく合格力がUP!
オンラインで好きな時間に学べて、しかも税込19,010円~の低価格

\ 気になる方はこちらからチェック! /

プログラミングも資格対策も通わず学べるオンライン教室【ハロー!パソコン教室】

 

関連 【EXCEL VBA】セル範囲を図として貼り付け「CopyPicture」時短テク

【EXCEL VBA】セル範囲を図として貼り付け「CopyPicture」時短テク
Excelで作った資料の一部を画像として抜粋して使いたい場面ってありませんか? 私自身、報告書やメールの添付用に、決まった表の部分を「図」として貼り付けることがよくありました。 エクセル操作自体は簡単なんですが、忙しいと...

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

【MOS Access資格】難易度や勉強時間は?独学で受かる勉強方法など
ゆるっと資格取得を楽しんでいる私ですが、今回は仕事にも直結したMOS Access資格についてのエピソードを紹介します。 業務でAccessを使う機会が少しずつ増えてきたこともあり、「ちゃんと基礎から学び直してみようかな」と思...

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

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

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

「ウェブデザイン技能検定2級は役立つ?独学合格の勉強法と就職・転職での評価」
趣味と副業のブログ運営でゆるくウェブ関連の知識を深めている私。 「Webデザイン技能検定」という国家資格にチャレンジしてみました。 なんだか堅苦しい響きですが、実は日本で唯一の「Web分野の国家資格」となります。 ...

 

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