お世話になります。
ACCESSからOutlookでメールを送信する際に署名を挿入したいのです。
メールを送信するコードは下記の通りです。
Private Sub コマンド29_Click()
Dim subject, mailBody, credit As String '変数設定:To宛先、cc宛先、bcc宛先
Dim outlookObj As Outlook.Application '変数設定:件名、メール本文、クレジット、添付
Dim mailItemObj As Outlook.MailItem 'Outlookで使用するオブジェクト生成
toaddress = Me![txt宛先] 'To宛先
ccaddress = Me![txtCC] 'cc宛先
subject = Me![txt件名] '件名
mailBody = Me![txt本文]
Set outlookObj = CreateObject("Outlook.Application")
mailItemObj.BodyFormat = olFormatPlain
mailItemObj.To = toaddress 'to宛先をセット
On Error Resume Next
mailItemObj.CC = ccaddress 'cc宛先をセット
On Error GoTo 0
'mailItemObj.BCC = bccaddress 'bcc宛先をセット
mailItemObj.subject = subject '件名をセット
mailItemObj.Body = mailBody & vbCrLf & vbCrLf & credit
Dim attached As String
Dim myattachments As Outlook.Attachments
'Outlookで使用するオブジェクト生成
Set myattachments = mailItemObj.Attachments
'attached = Range(“B9”).Value '添付ファイル
mailItemObj.Display 'メール表示
Set outlookObj = Nothing
Set mailItemObj = Nothing
DoCmd.Close acForm, "F_メール送信", acSaveNo
このコードに署名を挿入したいのです。
下記のコードを参考にしてみたのですが、上手く作動しないのです。
Function 署名(ByVal 署名ファイル As String) As String
Dim FSO As Object
Set FSO = CreateObject(“Scripting.FileSystemObject”)
Dim WSH As Object
Set WSH = CreateObject(“Wscript.Shell”)
Dim 署名フォルダ As String
署名フォルダ = WSH.SpecialFolders(“AppData”) & “\Microsoft\Signatures”
Dim ts As Object
Set ts = FSO.GetFile(署名フォルダ & “\” & 署名ファイル).OpenAsTextStream(1, -2)
署名 = ts.readall
ts.Close
Set WSH = Nothing
Set FSO = Nothing
Set ts = Nothing
End Function
どこを修正するのか、お手数ですが、ご教示をお願いします。
挿入したい「署名」はOutLookの下記のページの機能で自動挿入される署名のことでしょうか。
署名を作成してメッセージに追加する - Microsoft サポート
参考にしたコードが理解できず応用できないなら、単純に mailBody変数の最後に署名の文字列を追加するのではだめですか。
hatena様
回答ありがとうございます。
hatena様の方法ですと、署名が文字化けするのです。
それも、文字化けするときと、しないときがあります。
Outlookの設定で、文字化けしないようにしたのですが、文字化けします。
なので、Outlookの署名が保存されている場所から、直接、参照しようかなと思いました。
具体的にどのようなコードを作成したのか提示してもらえますか。
当方で動作確認した限りでは文字化けはしませんでした。
自動挿入される署名を使いたいなら、下記の方法が簡単だと思います。
024 Outlook VBA 署名を使う | くのへスタジオ
hatena様と同じコードです。
Outlookには、正常に表示されますが、送信後に、文字化けするときと、しないときがありました。
Outlookの設定の問題だと思いましたが、ご指摘のサイトを参考にして、文字化けは、解消しました。
ありがとうございました。