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でできていたように、メール本文内に表の貼り付けができるようになるでしょうか。
ご教授頂けると非常に助かります。

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

回答
回答

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

 

15 ユーザーがこの回答を役に立ったと思いました。

·

この回答が役に立ちましたか?

お役に立てず、申し訳ございません。

素晴らしい! フィードバックをありがとうございました。

この回答にどの程度満足ですか?

フィードバックをありがとうございました。おかげで、サイトの改善に役立ちます。

この回答にどの程度満足ですか?

フィードバックをありがとうございました。

 
 

質問情報


最終更新日: 2024年5月08日 表示数 42,726 適用先: