知恵袋の質問に答えてみた。:
detail.chiebukuro.yahoo.co.jp
下記のようなoutlookvbaでメール返信をしたいのですが、埋め込み図形がそのまま反映してくれません。何か方法はありませんか?
Dim objReItem As Outlook.MailItem
Set objReItem = ActiveInspector.CurrentItem.ReplyAll
objReItem.Recipients.ResolveAll
objReItem.Display
Set objReItem = Nothing
に答えてみた。
図を含んだ返信メールを作成したかったので、
GetInspector().WordEditor の編集で、
段落Paragraphsを使いました。
と言っても、
.Paragraphs(1).Range.Text で冒頭一段落目に決め打ちでセットしただけでした。
下記、いつもの あのあの、そのその、説明動画です・・・
youtu.be
https://youtu.be/h5BiIk5m2SY
目次
00:00 挨拶、やりたいこと
01:30 .WordEditorとParagraphsを使う
03:10 デバッグとテスト実行
05:25 body本文のテスト
07:35 蛇足で末尾に追加 .Countで段落数
段落(行)を一行増やしてから、返信文をセット
単純に、返信の1段落目に用意したBody返信文をセット
Option Explicit Sub test20220808メール返信テスト() Dim objReItem As Outlook.MailItem '現在表示中のメールから返信メールを作成する Set objReItem = ActiveInspector.CurrentItem.ReplyAll objReItem.Recipients.ResolveAll objReItem.Display '↑で作成した返信メールを編集する Dim objDOC As Object Set objDOC = objReItem.GetInspector().WordEditor '↑.WordEditorであとは、Wordの世界っぽく処理 '一段落目に定型返信文をセットしたい '段落(1)段落目をバカっぽく増やす objDOC.Paragraphs(1).Range.Text = vbCrLf & objDOC.Paragraphs(1).Range.Text '段落1に↑ 改行vbcrlf + 段落1 で改行を作り、その作られた(1)に返信をセット objDOC.Paragraphs(1).Range.Text = "返信定型文・・・" & vbCrLf & "あいう" Set objReItem = Nothing End Sub
strBODYなど、セットしたい返信文が変数に入っていると思うので、
objDOC.Paragraphs(1).Range.Text = strBODY
みたいにして、アレンジして使ってみてください。
Word+VBA+Paragraphs などで検索すると、段落の例が出てくると思うので探ってみてください。
少し前に書いた手前みそサンプルですが、
ken3memo.hatenablog.com
と隙あれば自分語りをすると怒られそうですが、
解決のヒントとなれば幸いです。
#OutlookVBA #VBA #マクロ #メール返信 #Paragraphs
蛇足:末尾に定型文を追加したい時は、
x = objDOC.Paragraphs.Count
で、段落数がわかるので、
objDOC.Paragraphs(x).Range.Text = objDOC.Paragraphs(x).Range.Text & vbCrLf
で一つ増やしてから
'段落1に↑ 改行vbcrlf + 段落1 で改行を作り、その作られた(x+1)に返信をセット
objDOC.Paragraphs(x + 1).Range.Text = "返信定型文・・・" & vbCrLf & "あいう"
Option Explicit Sub test20220808メール返信テスト() Dim objReItem As Outlook.MailItem '現在表示中のメールから返信メールを作成する Set objReItem = ActiveInspector.CurrentItem.ReplyAll objReItem.Recipients.ResolveAll objReItem.Display '↑で作成した返信メールを編集する Dim objDOC As Object Set objDOC = objReItem.GetInspector().WordEditor '↑.WordEditorであとは、Wordの世界っぽく処理 '一段落目に定型返信文をセットしたい '段落(1)段落目をバカっぽく増やす objDOC.Paragraphs(1).Range.Text = vbCrLf & objDOC.Paragraphs(1).Range.Text '段落1に↑ 改行vbcrlf + 段落1 で改行を作り、その作られた(1)に返信をセット objDOC.Paragraphs(1).Range.Text = "返信定型文・・・" & vbCrLf & "あいう" '末尾に追加なら Dim x As Integer x = objDOC.Paragraphs.Count objDOC.Paragraphs(x).Range.Text = objDOC.Paragraphs(x).Range.Text & vbCrLf '段落1に↑ 改行vbcrlf + 段落1 で改行を作り、その作られた(x+1)に返信をセット objDOC.Paragraphs(x + 1).Range.Text = "返信定型文・・・" & vbCrLf & "あいう" Set objReItem = Nothing End Sub