[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『メール送信時のメーラーへの入力』(kok)
Sub メール送信()
Dim mypath As String
mypath = ThisWorkbook.Path
ActiveWorkbook.SaveAs Filename:=mypath & "\" & Format(Date, "yyyymmdd") & "○□会社.xlsm"
Application.Dialogs(xlDialogSendMail).Show arg1:="□△@▼×○.okinawa.lg.jp"
End Sub
この時、メーラーのメッセージ欄(詳しい内容を記載するところ)に
ある決まった文章(例えば「今月分の報告です.....」)を自動で入力したいのですが可能でしょうか?
ご教示お願い致します。
os:vista エクセル:2007 メーラー:microsoft outlook
↑ 利用できるスレがあるんですか?
(半平太) 2012/10/31 20:22
Sub test() MailForm "atesaki@abc.com", "cc@abc.com", "bcc@abc.com", "件名", "本文" End Sub
Private Sub MailForm( _ AddressTo As String, _ Optional cc As String, _ Optional bcc As String, _ Optional subject As String, _ Optional body As String)
Dim strAddress As String strAddress = "mailto:" & AddressTo If Len(cc) > 0 Then strAddress = strAddress & "?cc=" & cc End If If Len(bcc) > 0 Then strAddress = strAddress & "?bcc=" & bcc End If If Len(subject) > 0 Then strAddress = strAddress & "&subject=" & subject End If If Len(body) > 0 Then strAddress = strAddress & "&body=" & body End If ThisWorkbook.FollowHyperlink Address:=strAddress End Sub
(暇奴)
>Dialogs(xlDialogSendMail)では本文は操作できないようですね。 そうらしいです。
それを使わない方向で考えるとなると、再度、仕様(やりたいこと)を明確にする必要があると思います。
分かっているのは「決まった文章を自動で入力する」ことのみ。
文章は何文字くらあるのか。 決まり文句に、アドリブで追加手入力するのか、しないのか。 手入力が不要だとして、送信まで自動でやっちゃうのか、目で確認してから送信するのか。 添付ファイルを自動で付けるのか、手作業で付けるのか。
※ あのー、私が対応できると云う訳ではありません(念の為) 昔、簡単じゃないなぁーと思わされたことがあります。
(半平太) 2012/11/01 14:10
Dialogs(xlDialogSendMail)使うアイデアが一つ浮かびました。 (姑息な方法ですが、目で確認しながらの事務なら使えるかもです)
以下、取り合えす構想のみです。
事前準備として「クリップボードに記憶されている文字列の貼り付け」を行うVBS(スクリプト)を書いてどこかに保存しておく。 つまり「1秒程度後に[Ctrl+VキーをSendkeysで送りつける]と云うスクリプトを書いて置く訳です。
VBAは、 決まり文句をクリップボードにセット→VBSを実行→SendMailのダイアログを実行。 そうすると、OUTLOOKが立ち上がって、本文に決まり文句が貼り付けられる、と云う塩梅です。
当初やろうとしていたこととあまり違わないので使えるかも知れません。
(半平太) 2012/11/01 20:50
半平太さん
VBSって単語は知っている程度です。
実現したい内容は
マクロボタンでメーラーを開き
添付ファイルを自動で付ける
本文を自動で入力する
本文は30文字ぐらいの決まり文句です。
時には少し付け足したり、文言を変更することもあります。
そして
内容を目で確認してから送信する。
というような事です。
ご教示いただけたら有難いです。
宜しくお願い致します。
(kok)
>VBSって単語は知っている程度です。
私も大差ないです。(^^ゞ
1.VBS(事前準備)
下のスクリプト(3行)をメモ帳に貼り付けて、ファイル名と拡張子を「PASTE.vbs」とし、 保存先を「エクセルファイル」と同じフォルダ内に保存して下さい。
Set objShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 1000 objShell.SendKeys "^v"
2.VBA(エクセルファイル)
Sub メール送信() Dim CB As New DataObject 'ツール→参照設定→Microsoft Forms 2.0 Object Library Dim buf As String Dim myPath As String
myPath = ThisWorkbook.Path ActiveWorkbook.SaveAs Filename:=myPath & "\" & Format(Date, "yyyymmdd") & "○□会社.xlsm"
'決まり文句を作る(例) buf = "今月分の報告です...(" & Format(Date, "M月)")
With CB .SetText buf '決まり文句をDataObjectに格納する .PutInClipboard 'DataObjectのデータをクリップボードに格納する End With Shell "WScript.exe " & myPath & "\PASTE.vbs""" 'スクリプト実行
Application.Dialogs(xlDialogSendMail).Show arg1:="□△@▼×○.okinawa.lg.jp"
End Sub
※1行目のコメントに書きましたが、参照設定をしてください。 ※初回だけ、タイミングが合わないセイなのか、失敗するかも知れません。
(半平太) 2012/11/02 09:40
半平太さんへ
ファイル添付、本文とも実現できました。
今月から超楽ちんに送信ができます。
すばらしいです。
有難うございました。
(kok)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.