- ベストアンサー
エクセルからの自動送信メールの件名にセルの値
- エクセルから自動でPDFファイルを作成し所定の宛先に自動送信するコードを使用し、メールの件名にエクセルの決まったセルの文字を引っ張ってくる方法について教えてください。
- エクセルの表がリンクで作成されており、そのエクセルの表だけをPDFで決まった宛先に送付して「送信完了」となるような自動送信メールのコードを実装したいです。
- メールの件名には品名(セルA1)が入るだけでも十分ですので、その方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sub Test() Dim FilePath As String, strSub As String Dim OutlookApp As Object Dim OutlookMail As Object 'On Error Resume Next FilePath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\結果報告書.pdf" 'Sheet2の結果報告書の特定のセルに品名 strSub = Worksheets("Sheet2").Range("A1").Value & "の結果報告書" Worksheets("結果報告書").ExportAsFixedFormat Type:=xlTypePDF, FileName:=FilePath Set OutlookApp = CreateObject("Outlook.Application") Set OutlookMail = OutlookApp.CreateItem(0) With OutlookMail .To = "****@******" .CC = "" .BCC = "" .Subject = strSub .Body = "表題の件添付の通りです。" .Attachments.Add FilePath .Send End With MsgBox "送信完了" End Sub
その他の回答 (1)
- watabe007
- ベストアンサー率62% (476/760)
>表の参照元シートのA1の製品名「○○」 Worksheets("結果報告書") にWorkSheets(○×△)を参照元にしたグラフが有り WorkSheets(○×△).Rang("A1")の値をメールの件名に使いたいのですか WorkSheets(○×△) シート名は固定しないのですか
補足
何度もすみません。 シート名は固定です。 申し訳ありませんが、少し要求が変わりました。 参照元のSheet1「計算表」は関係なく、計算表から結果を引っ張って出来上がったSheet2の「結果報告書」の特定のセルの文字(製品名)をメールの件名に入れたいのですが。 参照元の計算表(Sheet1)で複数の品名を扱うので、Sheet2の結果報告書の特定のセルに品名、例えば(ABC)を入れます。 この方が使いやすく、入力を忘れないので。 メールの件名に「ABC」+「の結果報告書」と表示させることで、PDFを開かなくてもどの品名のメール(報告書)か区別できようになると自分の保存メールでも受信者にもわかりやすいので。 最初はここまで気づかなかったのですが、PDFの自動送信が出来てみると欲が出てきてしまいました。 既に報告書シートの印刷範囲外に「送信ボタン」を作って1クリックで送信できることまで確認しましたので何卒よろしくお願いいたします。 やりたいことが抜けていたり、変わったりして申し訳ありません。
お礼
わざわざOutLookを入れて動作確認してくださった甲斐があり、当方の思った通りの動作ができるようになりました。 本当に感謝です。 他の報告書にも使えそうなので頑張ってみます。 助かりました。
補足
欲が出て品名に続きLOT Noも入れたくなったので、3つの文字列や並び順を試すたびに出るエラーメッセージにもめげずに頑張って、シート名を変えたりすることでほぼ完璧に思ったようにできるようになりました。