エクセルのマクロ(VBA)でメールを大量に作成する方法を紹介します!
今回エクセルのマクロで操作するメールソフトは「Outlook」です。
この「Outlook」はエクセルやワード等のソフトと同じ並びのパッケージ化されたソフトですので、エクセルとともに使用している人は多いのではないでしょうか!
今回説明するメール作成マクロとその不随ファイルは以下からダウンロードできます。
1.使い方
まずは以下の手順でプログラムを実行してみてください。
1-1.ファイルをダウンロード
上記のリンクをクリックするとダウンロード先を求められますので、今回は両方ともデスクトップに置いてみましょう。
デスクトップへ保存後、中身を取り出してまたデスクトップへコピーします。
※中身を取り出さないとマクロは実行できません。
このフォルダの中にマクロファイルが入っています!これで準備完了です!
1-2.ファイルを開いてマクロ機能を有効にする
それではいよいよマクロファイルを開きましょう!
マクロファイルは開くと【コンテンツの有効化】を求められます。
まずはこれをクリックします。
これについて詳しくは以下のページを参照してください。
エクセルマクロのファイルを開くとセキュリティ警告が出る理由と対処
1-3.マクロを実行する
「表示」タブの中の「マクロ」を選択すると、使えるマクロが表示されます(今回のファイルの場合「メール作成」というマクロ一つのみ)。
そのマクロが選択された状態で「実行」をクリックするとマクロが実行されます!
※ここでエラーが発生した場合は、本ページの項目『2-6.マクロ実行時にエラーが出る場合』の作業をしてからここに戻ってきてください。
一瞬でメールが10通できました!
これらのメールを見てみると、宛先・件名・本文・添付ファイルが上記エクセルの表の一行一行と対応していることがわかるはずです。
つまり一人一人に対して別々な内容のメールをExcelマクロで一瞬で作成することができるのです!
※この時添付されるファイルは、マクロファイルと同じフォルダの『添付ファイル』という名前のフォルダの中に入っています。
定例で決まった相手にメールするような業務がある方は、これでかなり時短と精度の向上を臨めると思います!
次からは、このマクロの中身の解説をします!
2.マクロ(VBA)の説明
ここからは実際にこのマクロの中身の解説をします!
このサイトのタイトルの通りいかに「情弱」でもプログラミングをするかをコンセプトにしているので、できる限りプログラムは短くします!
また小難しい話が続くのは挫折の元なので説明も最低限に留めます!
2-1.マクロのコードを見てみる
上記同様「表示」タブの中の「マクロ」を選択、「メール作成」というマクロが選択された状態で今度は「編集」をクリックするとマクロの中身が見れます!
さあ、これがマクロの中身です!
まだ意味わかりませんよね!(緑色の文字は、プログラムの説明をメモ書きしたものでありコードではありません)
今回は以下の図の赤線の個所についてのみ説明します。
そこ以外は自分では変更することのない決まりきった”部品”なのだと、いったん思っておいてください!
またプログラムは上から下に読んでいきますのでそのつもりで!
2-2.メールの宛先・件名・本文を指示している個所
以下の図の赤枠の『Cells(i, 〇).Value』の部分に注目してください。
それらの個所がそれぞれ、 ①宛先 ②CC ③BCC ④件名 ⑤本文 ⑥添付ファイル が何になるのかを表しています。
※今回は『Cells(i, 〇).Value』より左の記述は無視してください。
エクセルマクロ(VBA)では、エクセルのいずれかのセルに入力されている文字(数字)を『Cells(行, 列).Value』で表します。
※行は横、列は縦です!
例えば『Cells(1, 1).Value』は1行目の1列目なので『A1セルの文字(数字)』を表すし、『Cells(2, 3)』なら2行目の3列目なので『C2セルの文字(数字)』を表すということです。
それでは上記①を見てみましょう。
ここまでで考えると『Cells(i, 2).Value』はi行目の2列目の文字(数字)と読めます。
i行目って何だよって話になるので、次に説明します。
2-3.何にでも変化できる”変数”なるもの
コードの上の方に『i = 4』という記載がありますね。
これは『iとは4だ!』と宣言してます(ここでは仮にiを使っているだけで、aでもbでもはたまたmossanのように二文字以上でも構いません)。
は?iはiだろと思われたかもしれませんが、ここでいうiとは文字としてのiではなく”何でも格納できる箱”と思ってください。
こういった何にでもなれる存在をエクセルマクロ(VBA)に限らず、プログラミングの世界で”変数”と呼びます。
つまりiの中に4が格納され、iは4になったのです。
そして下の方の『i = i + 1』で『iとはi+1だ!』と宣言しています。
つまりiは最初に4になっているので、ここでiは+1され5に変化することになります。
ここで項目『2-2』の最後に出てきた『Cells(i, 2).Value』というコードに戻ってください。
少し理解できるのではないでしょうか。
『Cells(行, 列).Value』の行の個所を数字ではなく、iという”変数”で表しているんです。
つまり最初は『Cells(i, 2).Value』は4行目の2列目の文字(数字)、つまり『B4セルの文字(数字)』ということです。
これを実際にエクセルで見てみると以下の個所です。
宛先の入力されたセルですね!
つまり上記①の『MAILITEM_OBJ.To = Cells(i, 2).Value』は、宛先は『B4セルの文字(数字)』だ!と指定していることになります。
2-4.繰り返し処理
以下の図のように、『Do While Cells(i, 7) <> “”』と『Loop』の記述がありますが、この二つで挟まれた処理はループするのです。
しかし永遠にループしては困るので、特定の条件が当てはまる限りループするように記述しているのです。
まずこれまでの知識で『Cells(i, 7)』は読めますよね。
一行上で『i = 4』と宣言しているので『4行目の7列目のセルの文字(数字)』ですよね。
そしてその横の『<>』は『ではない』という意味です。イコールの反対です。
またさらにその横の『””』は空白という意味です。
つまり『4行目の7列目のセルの文字(数字)が空白でない限りループしろ』と書いてあるのです!(つまりG列の本文の入力されたセル)
そして『Loop』の直前で『i = i + 1』と宣言してiは5に変化しますよね?
よって以下の流れでプログラムは進みます。
①『i = 4』で『iは4だと宣言する』。
②『Do While Cells(i, 7) <> “”』で『4行目の7列目のセルの文字(数字)が空白でない限りループしろ』と宣言。
③i行目(最初は4行目)の各対応するセルに入力されている通りの宛先や本文などでメールを作成する。
④『i = i + 1』でiは5に変化する。
⑤『Loop』にたどり着いたら『Do While Cells(i, 7) <> “”』の直下に戻りまたメール作成をする。
その時はiは5になっているので、5行目の各対応するセルに入力されている通りの宛先や本文などでメールを作成する。
⑥そして『i = i + 1』でiは6に変化して『Loop』でまた先頭に戻り…
⑦4行目の7列目のセルの文字(数字)が空白になったらマクロが停止する。
このようにループ処理でプログラムに参照させる行を1ずつ変化させていくことで、エクセルの表に用意した通りの内容でメールを一瞬で大量に作成することができるのです。
2-5.このマクロを書き換える場合
ここまでで最低限の読み方は理解できたと思います。
自分で多少書き換えることもできると思いませんか?
例えば、このエクセルの表が10行目から始まるなら上記コードの『i = 4』の部分は『i = 10』と書き換えるべきです。
もし表の本文の列がG列(7列目)ではなくH列(8列目)にズラしたとしたら、『Cells(i, 7).Value』を『Cells(i, 8).Value』に書き換えればよいというわけです。
2-6.マクロ実行時にエラーが出る場合
マクロ実行時に以下のような『プロジェクトまたはライブラリが見つかりません。』というエラーが出る場合の対処方法を記載します。
本ページの項目『2-1.マクロのコードを見てみる』に記載のやり方で、マクロのコードを呼び出し『ツール』→『参照不可:Microsoft Outlook 16.0 Object Library』のチェックを外します。
次に、下のほうに下っていって『Microsoft Outlook ××.× Object Library』のチェックを入れてOKボタンを押してください。
※××.×の部分はお使いのエクセルのバージョンによって変わります。
以上の作業によって自身のエクセルのバージョンに合わせた機能を使えるように設定されました。
これでエラーが解消されます。
3.Outlookについて補足
宛先に複数名のアドレスを入れたい場合は、アドレスとアドレスを『;』で区切ればOKです。
そうするとOutlookが勝手にそこが区切りなんだと判断してくれます。
4.まとめ
・エクセルでメールを大量に作れる!
・セルに入力されている文字や数字は『Cells(行, 列).Value』で表せる。
・変数とは何にでも変化できる”箱”。
・『Do While ~』と『Loop』で挟まれた指示はループする。
さあプログラムを学んで自分の作業をどんどん楽にしていきましょう!
I am incessantly thought about this, thanks for posting.
I reckon something truly special in this website.
Some really great info, Gladiola I detected this. I’m not spaming. I’m just saying your website is AWSOME! Thank you so much! Please vist also my website.
Thanks for your thoughts. One thing I’ve got noticed is the fact banks in addition to financial institutions understand the spending behaviors of consumers and as well understand that the majority of people max out and about their real credit cards around the breaks. They smartly take advantage of that fact and commence flooding ones inbox in addition to snail-mail box having hundreds of no-interest APR credit cards offers shortly after the holiday season concludes. Knowing that for anyone who is like 98% of American community, you’ll soar at the possible opportunity to consolidate consumer credit card debt and shift balances towards 0 interest rate credit cards. lllkjmn https://headachemedi.com – sinus headache meds
You could certainly see your skills in the article you write. The arena hopes for even more passionate writers such as you who are not afraid to say how they believe. At all times follow your heart.| Dian Spenser Grefe
This paragraph will assist the internet viewers for building up new blog or even a weblog from start to end. Maribelle Griffie Gale Carena Adolphe Sandry
Heya i am for the first time here. I found this board and I find It truly useful & it helped me out a lot. I hope to give something back and help others like you aided me. Roxy Alf Yorgos
After checking out a number of the blog articles on your site, I honestly like your technique of blogging. I saved it to my bookmark webpage list and will be checking back in the near future. Take a look at my web site too and tell me how you feel. Minni Barnabe Haymes
You can change accoutre codes during the degrees of formality in the dependancy attire allowed in the most run-of-the-mill pole colleague array codes. It purpose giokelg.trytva.nl/good-life/koffer-handbagage-afmetingen-transavia.php sear you bring to an end and get through to the encouragement dealing attire selections on your workplace. The the better of employees reasonable necessitate to stinking in, design successfully, and grid-work to the fore in their careers. Danice Pate Urana
After checking out a number of the blog articles on your web page, I really like your way of writing a blog. I bookmarked it to my bookmark webpage list and will be checking back soon. Take a look at my website too and tell me what you think. Charyl Delmor Idell
You have mentioned very interesting details! ps decent web site. Hortense Early Budge
Working with @businext is like having a family member who can fix everything. They know what you need, exactly when you need it. Jewelle Maison Martynne
I truly, believe we are walking with Christ in our community, Pieter you are my shepherd, teacher, and friend guiding in my walk with Christ!!!! Adda Dewain Noelani
I love it when people come together and share views. Great website, keep it up! Amelie Jameson Jon
This text is priceless. Where can I find out more? Karlen Fabe Willie
We are a gaggle of volunteers and opening a brand new scheme in our community. Your website provided us with helpful information to paintings on. You have performed a formidable activity and our whole neighborhood shall be thankful to you. Hyacinthe Sebastien Greenquist
You have brought up a very good details , thankyou for the post. Florry Alfredo Irina
マクロのダウンロードしたいのですがよろしくお願い致します。
この記事の「←クリック」という箇所をクリックするとダウンロードできるかと思うのですがいかがでしょうか?
何か別な現象が起きますか?