昨日、以下のコメントをしましたが、その後全く音沙汰無いので、興味を失ったと見なして削除しました。
引用:
質問に対する考え方だけですが、
・SendKeysは不安定なことで定評があります。これは避けたほうがよいでしょう。
・別の方法を検討して下さい。
With Worksheets("sheet1")
.Range(.Cells(3, 2), .Cells(ENDROW, 8)).CopyPicture
End With
With oapp.ActiveInspector.WordEditor.Windows(1).Selection
.Paste
End With
のようにすることで図のコピー貼り付けができると思います。
貼り付け位置の調整などはそちらで工夫してください。
とまあ、これも大人げないかと再考し、コードを作成しましたので、参考にしてください。
(私の環境で正常に動作することを確認しています。)
テストに当たって不要な内容は削除していますので、
必要なところは、そちらで追加したり、細かい修正はそちらでして下さい。
Sub Mail_Click()
Dim oapp As Object
Dim objmail As Object
Dim wdDoc As Object
Dim toaddress$, ccaddress$, bccaddress$ '$は As Stringと同一の意味
Dim subject$, mailBody$, credit$
Set oapp = CreateObject("Outlook.Application")
Set objmail = oapp.CreateItem(0)
With Worksheets("Mail")
toaddress = .Range("B1").Value
ccaddress = .Range("B2").Value
subject = .Range("B3").Value
mailBody = .Range("B4").Value
credit = .Range("B5").Value
End With
With objmail
.Display
.BodyFormat = 2 'olFormatHTML
.To = toaddress
.CC = ccaddress
.subject = subject
'.Body = mailBody & vbCrLf & vbCrLf & vbCrLf & credit 'あとで纏めて書き込む。
.GetInspector.Display (False) '既定値なら実行する必要なし?
End With
Dim ENDROW As Long
With Worksheets("sheet1")
ENDROW = Cells(Rows.Count, 5).End(xlUp).Row
.Range(.Cells(4, 2), .Cells(ENDROW, 2)).Value = _
.Range(.Cells(4, 2), .Cells(ENDROW, 2)).Value
End With
Set wdDoc = oapp.ActiveInspector.WordEditor
With wdDoc.Windows(1).Document.Range.Font
.Name = "Meiryo UI"
.Size = 10
End With
With Worksheets("sheet1")
.Range(.Cells(3, 2), .Cells(ENDROW, 8)).CopyPicture
End With
With oapp.ActiveInspector.WordEditor.Windows(1).Selection
.TypeText mailBody & vbCrLf & vbCrLf
.Paste 'Pictureを貼り付け
.TypeText vbCrLf
.TypeText credit & vbCrLf
End With
Set objmail = Nothing
Set oapp = Nothing
End Sub
# なお、仕様追加にお答えする積りはありませんので、予め申し上げておきます。