PcSchool.Club

パソコンを分かりやすく解説することを目指す無料のオンラインパソコン教室

岐阜のパソコン教室「パソコンスクール・テルン」

Excel VBA 基礎講座 メール送付

2024年11月7日

今回のExcelVBA基礎講座では、Outlookアプリケーションを用いてExcelからメールの送信をするマクロを作成していきます。

Outlookの機能を変数に入れ活用することが出来、応用するとExcelで作成した連絡先の一覧表のアドレスに、一括でメールを送信することも可能になります。

動画の解説で学びながら、演習問題にもチャレンジしていきましょう。

メール送付 1.メール送受信のアイテムを準備する

メール送受信のアイテムを準備する

●ソース

Sub Sample( )

Dim OL As Outlook.Application //OLの中にOutlookのアプリケーションを入れる宣言をする

Dim MI As Outlook.MailItem //MIの中にOutlookのメールアイテムを入れる宣言をする

Set OL=CreateObject(“Outlook.Application”) //変数OLの中にOutlookのアプリケーションに入れる

Set MI=OL.CreateItem(olMailItem) //変数MIの中にOL中のメールを送受信する機能を入れる

End Sub

メール送付 2.メールを送信する

メールを送信する

●ソース(※1.メール送受信のアイテムを準備するのソースの続き)

Sub Sample( )

Dim OL As Outlook.Application 

Dim MI As Outlook.MailItem 

Set OL=CreateObject(“Outlook.Application”) 

Set MI=OL.CreateItem(olMailItem) 

MI.SentOnBehalfOfName=”aaa@aaaa.com” //送信者

MI.To=”kunren0099@mtec-hp.com //送信先

MI.CC=”test@test.com” //コピーを送る先

MI.BCC=”test2@test2.com” //コピーを送る先2

MI.Subject=”こんにちは” //件名

MI.Body=”いつもお世話になっております”&vbCr&”よろしくお願いします” //vbCr=本文内で改行

MI.Send //メールを送信する

’MI.Display (※メールの入力画面を確認する)

Set OL=Nothing //使い終わったらメール設定を空にする

Set MI=Nothing //使い終わったらメール設定を空にする

End Sub

この単元の演習問題

下図のような入力フォームを作成し、担当者とメールアドレスを入力し、担当者が順に登録されるように処理を行います。
メール一括送信ボタンをクリックすると、それぞれの担当者にメールが送信されるようにプログラムを作成してください。
件名はセルE2の値、本文はE3の値を利用するものとします。
※ここでは、CCとBCC、添付ファイルはなしで送信されるように処理を記述します。

演習問題解説1

Private Sub CommandButton1_Click( )

Range(“a100000”).End(xlUp).Offset(1,0).Select /最後に入力されたセルの一つ下のセルを選択

ActiveCell.Value=TextBox1.Value //上記で選択したセルにテキストボックス1に入力した内容を入れる

ActiveCell.Offset(0,1).Value=TextBox2.Value //上記で選択したセルの一つ右隣りのセルにテキストボックス2に入力した内容を入れる

End Sub

演習問題解説2

●ソース(メールを一括送信する)

Private Sub CommandButton1_Click( )

Dim OL As Outlook.Application 

Dim MI As Outlook.MailItem 

Set OL=CreateObject(“Outlook.Application”) 

Set MI=OL.CreateItem(olMailItem) 

Range(“a3”).Select

Do While ActiveCell.Value<>”” //値が等しくない・空ではない場合は以下の指示を繰り返す

tanto=ActiveCell.Value

mail=ActiveCell.Offset(0,1).Value

‘MsgBox tanto&”と”&mail (※確認用)

MI.SentOnBehalfOfName=mail

MI.To=”kunren0099@mtec-hp.com”

MI.Subject=Range(“e2”).Value

MI.Body=Range(“e3”).Value

MI.Display

ActiveCell.Offset(0,1).Select //一つの処理が終わったら1行下0列のセルを選択する

Loop

End Sub

関連サイト

パソコン教室

パソコンスクール・テルン岐阜・穂積・大垣教室 楽しく学ぶ・通うパソコン教室あもる

パソコン修理・販売・買取・サポート

パソコンの修理・販売・買取・サポート