Excel VBAからOutlookを操作して、本文内に表を張り付ける

どなたかご教授下さい。

を参考に、ExcelマクロでOutlookを操作して、メール本文内に表貼り付けるマクロを作成して、Office2007で使用していました。

しかし、Officeを2010にバージョンアップしたところ、マクロが動かなくなってしまいました。

ステップインで確認したところ、

If oCtl.Caption = "貼り付け(&P)" Then

の部分で、コマンド名が変わっているために貼り付けのコマンドを拾えないようでしたので、

If right(oCtl.Caption,4) = "(&P)" Then

でコマンドをoCtlに代入することができました。

ただ、これを実行する

    DoEvents
    
    oCtl.Execute '↑で見つけたoCtl 貼り付けコマンド(outlook)を実行

の部分で

実行時エラー'-2147467259(80004005)':
'Execute'メソッドは失敗しました: '_CommandBarButton'オブジェクト

というエラーになってしまいます。

どこを修正すれば2007でできていたように、メール本文内に表の貼り付けができるようになるでしょうか。
ご教授頂けると非常に助かります。

どうぞよろしくお願い致します。

 

質問情報


最終更新日 2019年9月05日 表示 28,729 適用先:
回答
回答

Outlook2010以降はツールバーやメニューバーはなくなり、リボンに置き換えられました。なので、CommandBarsから実行する方法は出来なくなりましたので、エラーになります。

 

とりあえず、Excelで選択しているものをOutlookのメールの本文にに貼り付けるVBAを作成しました。

 

以下をお試しください。

 

Sub macro()
    Dim Ap As Object
    Dim M As Object
    'Excelで選択しているものをコピー(図でも表でもOKです)
    Selection.Copy
    Set Ap = CreateObject("Outlook.Application")
    Set M = Ap.CreateItem(0)
        M.BodyFormat = 3  'リッチテキスト形式
        M.Body = "テストです"  'メールの本文
        M.To = "test @ test"  'アドレス
        M.Subject = "テスト"  '件名
        M.Display  '画面を表示
        With Ap.ActiveInspector
            '貼り付け
            .WordEditor.Windows(1).Selection.Paste
        End With
End Sub

 

この回答は 11 人の役に立ちました

·

この回答で問題は解決しましたか?

役に立ちませんでした。

回答としてマークしていただきありがとうございます。

この返信の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。今後のサイト改善に役立てて参ります。

この回答の満足度をお教えください。

フィードバックをお送りいただきありがとうございます。