[[20190607101913]] 『メール送信』(sato) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『メール送信』(sato)

宜しくお願いします。
下記にてメール送信をしておりますが、サーバーがあり各作業者にエクセルを
配布して使用しております。各PCのOS違いから配布する都度にMicrosoft Outlook XX.0 Object Libraryを参照設定を行っております。参照設定しない方法をネットで調べておりますが、分からず教えて下さい。
下記は現在こコードです。

  Dim outlookObj As Outlook.Application

    Dim mailItemObj As Outlook.MailItem
    Dim attached As String
    Dim myattachments As Outlook.Attachments
    Dim msg As String

    msg = "テストです。"

    Set outlookObj = CreateObject("Outlook.Application")
    Set mailItemObj = outlookObj.CreateItem(olMailItem)
      With mailItemObj
         .BodyFormat = 2      'htmlテキストに変更
         .To = Range("b2").Value      'to宛先をセット
         .subject = "テスト送信"   '件名をセット
         .Body = msg 'メール本文
      End With

    Set myattachments = mailItemObj.Attachments
    attached = ThisWorkbook.Path & "\フォルダ" & "\リスト.xlsx"     '添付ファイル
    myattachments.Add attached

    mailItemObj.Display  'メール表示のみ

    Set outlookObj = Nothing: Set mailItemObj = Nothing

< 使用 Excel:Excel2016、使用 OS:Windows10 >


Outlookのライブラリは分かりませんが、他のライブラリを参照設定をせずに利用する場合、私は以下のように対応しています。

1)Dimでオブジェクトを宣言するときは、Object型に変更する。
2)Setや宣言で New ○○は使用せずに、Object型に合わせた書き方をする
3)定数を値にかえる

1、2の参照設定を使用しない場合の宣言は、以下のサイトに記述があります。
https://tonari-it.com/vba-outlook-object/

3の定数については、とりあえず参照設定を外して、上記1・2を修正した状態でマクロを実行した場合、定数があるとその行でエラーになってくれるので、あとはそのエラーが出た行の定数を値に置き換えます。

なお、参照設定を外すとそのライブラリに対するコード入力時の補助機能(例えば、「.」を入力するとメソッドやプロパティの一覧が表示されるなど)は使えなくなりますのでご注意ください。

私は、上記で対応できていますが、そこまで詳しいわけではないので、もっと詳しい方がもっといい方法を伝授してくれるかもしれません。
ご参考まで。
(う) 2019/06/07(金) 12:01


[[20181009101826]] 『マクロでメールを送る時のエラー回避』(go-chi)
↑の???さんが 2018/10/09(火) 11:17に投稿された内容が参考になりそうです。

(もこな2) 2019/06/07(金) 12:10


回答ありがとうございました。
他のPCでも検証しましたが、うまく作動致しました。

大変助かりました。感謝です。
(sato) 2019/06/07(金) 15:21


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.