エクセルVBAで自動メール送信する方法

このQ&Aのポイント
  • エクセルで在庫管理をしている際に、VBAを使ってアウトルックで自動メール送信をする方法を学んでいます。
  • 具体的には、使用数を入力しているシートの当月在庫が管理値を下回った場合に、自動的にアウトルックでメールを送信する仕組みを作りたいと考えています。
  • 参考サイトを使って勉強していますが、管理値を下回った場合の条件分岐の部分が理解できず、作成することができません。お手伝いいただける方がいれば、ご協力お願いいたします。
回答を見る
  • ベストアンサー

エクセル vba アウトルックで自動メール送信

vba勉強中です。 初心者のため質問の仕方に不備ありましたらご了承ください。 在庫管理をエクセルで行っています。 使用した日に使用数を入力し当月在庫を管理しているシートがあります。 I列の当月在庫がH列の管理値を下回ったらアウトルックで自動メール送信を考えています。 在庫管理したい品目は40個ほどあります(添付しているファイルは5個としています。) こちらのサイト(https://fastclassinfo.com/entry/vba_outlook_sendmail/)を参考にしていますが、管理値を下回ったらという部分が勉強不足で作成できません。 お手数をおかけしますがお分かりになられる方、よろしくお願い致します

質問者が選んだベストアンサー

  • ベストアンサー
  • kkkkkm
  • ベストアンサー率65% (1617/2456)
回答No.1

> I列の当月在庫がH列の管理値を下回ったら I=今月在庫 J=管理値 となっています。その前提で Sub Test() Dim i As Long For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row If Cells(i, "I").Value < Cells(i, "J").Value Then Call SendMail1(i) End If Next End Sub Sub SendMail1(ByVal mRow As Long) MsgBox Cells(mRow, "A").Value End Sub SendMail1は参考にしたサイトのコードを適用してください。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

標題の「エクセル vba アウトルックで自動メール送信」ならWEB記事を照会して見ればすぐ似たものが出てくる。 >下回ったらという部分が このexcelのシートの各行の列で、管理値>「問題の項目データ」の時にメイルを作成し送信すればよいのでは。 判らないというのは、何が判らないか判らない。 (A)また宛先メイルアドレスは、シートのどこかの列に出ているのか。 (B)製品(部品、商品)ごとにメイルを出す先が違い、2品目以上まとめたい場合もあるのか? そうすると、表題の>アウトルックで自動メール送信、というのは難しさの主題ではなくなるだろう。データベース的な思慮が必要になると思う。 初めて読む・考える読者や回答者への説明が必要で、その点の思慮が足りないのでは。会社の社員の常識でも、一般の者には、常識は通用しない点はないか、考えて説明すべき。

関連するQ&A

  • VBA エクセル+アウトルックで自動メール送信

    エクセル、アウトルックともに2003です。 VBAは初心者でほとんど分からないのですが、下記のようなことはできますか? エクセル、シート1に顧客管理台帳を作りました。 A1セル メールタイトル(共通) A2セル 会社名 A3セル 担当者名 A4セル Eメールアドレス エクセル、シート2には送信する基本文章を入れようと思ってます。 A1セル    会社名が反映されるように A2セル    担当者名が反映されるように A3~A5セル 用件 シート1は50件ほどの顧客リストとなってます。 マクロ(VBA?)で1件ずつ、メールアドレス・タイトル、本文に会社名・担当者・用件が自動で入るようにしたいのですが、このようなことはできるのでしょうか? 送信前に内容を一応チェックしてから送信したいと思ってますので、送信ボタンを押すのは手動にしたいです。

  • エクセル VBAで困っています

    エクセル VBA初心者です。プログラムの管理をしたいのですが。2つのブック(前月と当月)を比較して削除されたもの、追加されたもの変更されたものを調べたいのですが。Book1のSheet1のA列にプログラム名、B列にプログラムの変更日付があります。同様にBook2のSheet1のA列にプログラム名、B列にプログラムの変更日付があります。この二つのシートを比べてプログラムが増えたもの、減ったもの、変更日が変わったものの3点をBook3のSheetに書き出したいのですが。何卒宜しくお願いします。

  • エクセル VBA

    エクセル VBA初心者です。プログラムの管理をしたいのですが。2つのブック(前月と当月)を比較して削除されたもの、追加されたもの変更されたものを調べたいのですが。Book1のSheet1のA列にプログラム名、B列にプログラムの変更日付があります。同様にBook2のSheet1のA列にプログラム名、B列にプログラムの変更日付があります。この二つのシートを比べてプログラムが増えたもの、減ったもの、変更日が変わったものの3点をBook3のSheetに書き出したいのですが。何卒宜しくお願いします。

  • VBAによる在庫管理について

    Sheet1のA1セルからE1セルまで「品名」、「単価」、「単位」、「在庫数量」、「備考欄」が記入されております。10000品目の在庫管理に使用しております。 Sheet2においてinputboxを使用し品名を入れるとSheet1のA1セルを起点とした表のA列「品名」から部分一致で検索し、検索結果のA列からE列までのデータをSheet3に表示するという構文を教えていただけると幸いです。 宜しくお願い致します。

  • ExcelのVBAからのOutlookメール発信

    ExcelのVBAを使ってOutlookからメールを発信させています。その時のメール本文に付けているハイパーリンクの設定について教えて頂けないでしょうか。 困っている具体的な内容は、メール本文にハイパーリンクをつける際に、文字数が多いとOutlook側で文字列が折り返えされてしまい、ハイパーリンクが機能しない、というものです。 実際のリンク先のアドレスではなく、例えば「関連データ」の様な決った文字列をExcelのVBAを使ってメール本文にハイパーリンクとして表示させる方法を教えて頂けないでしょうか。 (Outlook側の折り返し文字数の設定で文字数を増やす方法では、使用者毎に設定しなければならないと思うので上記方法を教えて頂けないでしょうか。) 宜しくお願いします。

  • エクセルのVBAでOutlook Expressの操作

    エクセルのVBAでOutlook Expressの操作 顧客情報を管理する上で、メールアドレスの登録が非常に面倒です。 そこで、Outlook Expressで受信したメールアドレスを自動でエクセルに落としたいのですが、 やり方を教えて下さい。出来れば、VBAを使ってやりたいです… イメージしているのは、 (1)件名に「メールアドレス登録」と入力し、本文に名前を入力したものを送る。 (2)メッセージルールで自動振り分けをして、「メールアドレス登録」という件名のメールは1つのフォルダにまとめる。(これは出来ました) (3)エクセルのA列に名前、B列にアドレスをOutlook Expressから自動で入力する。(ここをVBAを使って自動で行いたい) こんな感じなのですが、宜しくお願いします。

  • エクセル2010 結び付け?関連づけ?

    どう説明してよいのか分からないので 小さいですが画像を添付しました。 1000品目ほどある商品の在庫場所の管理で使う表です。 1年に1回、棚卸の関係で使用します。 画像で理解できない部分があれば回答いたしますので どうぞよろしくお願いいたします。 ■SheetA~Cは、別のSheetです ■エクセル2010使用です Sheet A ・フィルターで在庫場所ごとに並べています Sheet B ・品番順にしか出力できない ・品目が増えることがある(例ではスイカ) ・品目が減ることはない ・価格が変わることがある(例ではバナナ) ・在庫場所の欄はない Sheet C ・新商品である、スイカの在庫場所は空欄 ・それ以外の商品の在庫場所は  シートAと同じ場所を示す

  • エクセル VBAで関数

    こんばんわ。いつもお世話になっております。 エクセルでデータを加工しているのですが、関数で加工するととても遅くなってしまうので なんとかVBAで作業できないかと模索中です。 Sheet1の、A列=取引先 B列=支店名 となっており、それが3,000行ほどあります。 Sheet2も、A列=取引先 B列=支店名 となっており、 Sheet1のC列に、Sheet1のA列のB列という支店が、Sheet2にあるか確認したいのです。 現在は、Sheet1のC列に、SUMPRODUCT関数でカウントさせているのですが、大変重いです。 ほかのSheetで、VBAを使って関数のような働きをさせている部分があります(前任者作成) そのように、なんとかVBAを使用したいのですが、なかなかうまく出来ません・・・。 どうか、お力を貸してください!! うまく説明できなくて、わかりづらかったらごめんなさい。 よろしくお願いいたします。

  • エクセルVBA:文字列での検索

    エクセルVBAで、在庫管理をしようとしています。初心者です。 4個のListboxをそれぞれ選んでいくと、任意の商品名になるようにしています。 そこで、選んでもらった後、 Listbox1.List(Listbox1.ListIndex) & Listbox2.List(・・・・ というように4個のListboxから選ばれた文字列をつなぎ、別シートの在庫データベースの「商品名」と「Listboxをつなぎ合わせた文字列」と同じのを探させて、在庫を引き落とすようにしています。 ですが、できる場合とできない場合があります。 何ででしょう? 文字列で突き合わせると、見た目が同じ場合でも違うと認識されることがあるのでしょうか?(半角全角が違うとか、最後にスペースが入っているとかはないです。試しにセルに貼り付けてvlookupで検索してみると、できました。)

  • VBAで集計をしたい

    エクセル2003を使っています。大きな表があり、ファイルサイズも大きい為、VBAで処理したい 表構成: 表全体の大きさは、SHEET1 (A1:CQ5000) SHEET2 (A1:CQ10000)程あり、品目種類は600種類、1品目につき品番は5~50種類ほど構成が付いております SHEET1,B5:B8には、4行分を結合セルにした品目があり、E3:CQ3 (3ケ月分、日付), E4:CQ4(曜日) 、E5:CQ5(計画予定数)となって数値データが入っています、 SHEET2, 行E1:CO3(3ケ月分日付),、A2:A10000列には(SHEET1同様の品目),B2:B10000には品目に使う部品各種の品番、D2:D10000には品目1台あたりの使用数などがあります。 質問内容: シート1品目、シート2品目を照合し、シート1品目毎の計画予定数×シート2品目毎使用数の計算結果を、シート2該当セルに表示させたい、 シート2該当セルはE2:CQ10000です、宜しくおねがいします。

専門家に質問してみよう