
メールで日報を送信する作業が日々のルーチン業務となっているのですが、
その負荷を軽減するため、できるだけ自動化したいと考えています。
メールを作成し、送信直前まで仕上げたいのですが、どこまで自動化できるでしょう。
※万が一の事故を防ぐため当面「送信」操作は人の手で行いたいです。
メール作成の内容は、
・指定のファイルを添付
・特定の宛先、件名、本文を挿入
です。
条件を細かく説明すると以下の様になります。
・メーラーはOutlook14(Office2010)
・添付ファイル名は固定ですが末尾の日付が変動
(例)
【****】○○日報20180814.xlsm
・宛先はToに30アドレス
・件名は固定ですが、日付部分が変動します。
(例)
【****】○○日報_8/14時点
・本文は定型文ですが、日付部分や本日の速報値が変動
(例)
-----------------------------------
各位
お疲れ様です。
****の進捗をご報告します。
<2018/08/14時点>
■○○○○ [F10]件
■□□□□ [F11]件
■△△△△ [F12]件
※詳細は添付の資料をご確認ください。
以上、よろしくお願いいたします。
-----------------------------------
[F10]とは添付エクセル、特定シート上のセル位置を指します。
UWSCでできたら良いと思っていますがVBAの方がずっと楽・・等なら検討します。
上記条件は現状こうやっているというだけなので必ず合わせる必要はありません。
自動化の都合に寄せる事は可能です。
(ファイルは事前にどこに置けば良いとか、日付の書式、ファイル名の規則とか)
不明点、説明不足な点あれば補足します。
詳しい方、よろしくお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> このソースのままだと実際にエクセルのセルの値は代入されませんよね。
件名や宛先の入ったシートのVBAとして作成すれば、Range("~").Valueで取得できるハズ。
別のブックやシートのVBAだったら、
> 実際に目的のファイルを開く処理は別途必要って事ですよね?
そういう事になるハズ。
いえ、私の言いたかったのはおそらくそうじゃなく、
最初に書いていただいたソース中に、
"■○○○○ " & Range("F10").Value & "件"
等がありますが、
これは、下記ファイルの中身を見に行ってはくれませんよね?
"【****】○○日報" & Format(Date, "yyyymmdd") & ".xlsm"
ソース中にはないが、自分でファイルをOpenする処理が必要なんですよね?
という意味でした。
No.1
- 回答日時:
UWSCからOutlookを起動して操作するよりは、VBやVBAからメール送信のAPIを利用する方が簡単だと思います。
例えば、下記のサイトはExcelに入力した件名や宛先、添付ファイルの場所を元にメール送信する事例です。
パソコンスキルの教科書 - VBAでメールを自動送信!エクセルマクロでoutlook操作する方法|事例&コード付
http://www.fastclassinfo.com/entry/vba_outlook_s …
--
手元にExcel、Outlookが無いですがたぶん、
Dim outlookObj As Outlook.Application 'Outlookで使用するオブジェクト生成
Dim mailItemObj As Outlook.mailItem 'Outlookで使用するオブジェクト生成
Set outlookObj = CreateObject("Outlook.Application")
Set mailItemObj = outlookObj.CreateItem(olMailItem)
mailItemObj.BodyFormat = 3 'リッチテキストに変更
mailItemObj.To = "hoge1@hoge.com, hoge2@hoge.com, hoge3@hoge.com" 'to宛先をセット
mailItemObj.cc = "hoge4@hoge.com" 'cc宛先をセット
mailItemObj.BCC = "jibun@jibun.com" 'bcc宛先をセット
mailItemObj.subject = "【****】○○日報_" & Month(Date) & "/" & Day(Date) & "時点" '件名をセット
' 本文生成
mailItemObj.Body = "-----------------------------------" & vbCrLf
mailItemObj.Body = mailItemObj.Body & "各位" & vbCrLf
mailItemObj.Body = mailItemObj.Body & "お疲れ様です。" & vbCrLf
mailItemObj.Body = mailItemObj.Body & "****の進捗をご報告します。" & vbCrLf
mailItemObj.Body = mailItemObj.Body & vbCrLf
mailItemObj.Body = mailItemObj.Body & "<" & Date & "時点>" & vbCrLf
mailItemObj.Body = mailItemObj.Body & "■○○○○ " & Range("F10").Value & "件" & vbCrLf
mailItemObj.Body = mailItemObj.Body & "■□□□□ " & Range("F11").Value & "件" & vbCrLf
mailItemObj.Body = mailItemObj.Body & "■△△△△ " & Range("F12").Value & "件" & vbCrLf
mailItemObj.Body = mailItemObj.Body & "※詳細は添付の資料をご確認ください。" & vbCrLf
mailItemObj.Body = mailItemObj.Body & "以上、よろしくお願いいたします。" & vbCrLf
'
mailItemObj.Attatchments.Add "【****】○○日報" & Format(Date, "yyyymmdd") & ".xlsm" ' 添付
mailItemObj.Save '下書き保存
mailItemObj.Display 'メール表示
' 終了処理(するとOutlookが閉じる?
Set outlookObj = Nothing
Set mailItemObj = Nothing
> ※万が一の事故を防ぐため当面「送信」操作は人の手で行いたいです。
って事だと、下書きに保存して表示するとかが無難でしょうか。
ありがとうございます。
参照設定など少し直したら(例)通りの動きをしました。
VBAでここまでできるのですね。
UWSCでこのVBA実行まで行えば連動して結果がでますね。
もう少し色々なアイデアを待ってみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) outlookで宛先が異なるメールを一括送信する方法 outlookで200人それぞれをtoに指定し 2 2023/08/03 21:24
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/02/21 13:29
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- PDF PDFを自動添付したメールを送信してくれるツールを探しています。 2 2023/02/07 15:19
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) 1つのファイルを3つのフォルダにファイル名を【明日の日付】にして、コピーをしたい 2 2022/12/21 17:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
宛先が、recipients not specif...
-
迷惑メールの遮断法
-
Excel:ハイパーリンクに字数制...
-
宛先・cc・Bccをグループ化し...
-
Outlookで自分(Outlookのメルア...
-
CCを日本語で言うと?
-
メールの宛先の「リソース」とは
-
ウインドウズライブメールで送...
-
outlookの「宛先」がアイウエオ...
-
宛先の名前の後に「、」がつく
-
ACCESS2010 レポートを分割しP...
-
Outlook Express 受信時間が長...
-
「Thunderbirdメール」の送信文...
-
受信トレイに大量の迷惑メール...
-
outlookでメールを送ってくれた...
-
件名・本文が無いメールの対処...
-
Outlookの転送は、PC起動してい...
-
Thunderbirdで受信トレイの送信...
-
送信者不明 件名なしメールは...
-
CC、BCCにだけアドレスが...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
メールの宛先の「リソース」とは
-
CCを日本語で言うと?
-
Outlookで[全員に返信]をクリッ...
-
宛先が、recipients not specif...
-
迷惑メールの遮断法
-
Outlook で宛先が複数の場合の人数
-
Outlook2019の宛先表示について
-
アンダーバーが表示されない
-
宛先の名前の後に「、」がつく
-
宛先の順番が入れ替わってしまう。
-
宛先とCCの違いは何でしょうか。
-
ACCESS2010 レポートを分割しP...
-
宛先・cc・Bccをグループ化し...
-
Wordの差し込み印刷でのフィル...
-
ACCESSで自動でメールをおくる...
-
ACCESS2000のレポートのコント...
-
サンダーバードで自分宛のメー...
-
以前、送信した人に再びメール...
-
BCCで送信、宛先は空欄
-
EXCELマクロで複数のEMAIL宛先...
おすすめ情報
No.1への補足です。
どうせエクセルVBA使うなら(マクロBook開くなら)、
シート上に、セットしたい「宛先」「件名」「本文」「添付ファイルパス」「添付ファイル名」を記載できるようにすると良いので改修にチャレンジしてみます。
このソースのままだと実際にエクセルのセルの値は代入されませんよね。
実際に目的のファイルを開く処理は別途必要って事ですよね?