[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『アウトルック?』(エクセル博士)
以下はどのように使えますか?
Enum col '1以降の数値を省略した場合は+1される
宛先 = 1 複写 氏名 期日 金額 添付キーワード End Enum
Sub main()
'Outlookオブジェクトの作成 Dim OutlookObj As Outlook.Application Set OutlookObj = New Outlook.Application
Dim r As Long For r = 2 To Cells(1, 1).End(xlDown).Row
'メールアイテムオブジェクト作成 Dim mailItemObj As Outlook.MailItem Set mailItemObj = OutlookObj.CreateItem(olMailItem)
'添付ファイルオブジェクトの生成 Dim attachObj As Outlook.Attachments Set attachObj = mailItemObj.Attachments
Dim keyword As String keyword = Cells(r, col.添付キーワード)
'★添付ファイルが存在する場合のみ、メールアイテムを作成する If FileAttach(attachObj, keyword) = True Then
'メール本文作成 Dim mailBody As String mailBody = CreateMailBody(r)
'メールアイテム作成 With mailItemObj .To = Cells(r, col.宛先).Value .CC = Cells(r, col.複写).Value .Subject = Cells(1, "J").Value '件名 .Body = mailBody '本文 End With
mailItemObj.Display '下書きを表示
'次のメールアイテムを作成するためいったん破棄 Set mailItemObj = Nothing
End If
Next r
End Sub
' 【機能】Excelシート上の指定行番号のメール本文を作成する
Function CreateMailBody(r As Long) As String
Dim sName As String, DayOfUse As String, price As Long sName = Cells(r, col.氏名).Value DayOfUse = Cells(r, col.期日).Value price = Cells(r, col.金額).Value
Dim sign As String '署名 sign = Cells(12, "J").Value
Dim mBody As String 'メール本文 mBody = Cells(2, "J").Value '初期値を設定 mBody = Replace(mBody, "(氏名)", sName) mBody = Replace(mBody, "(期日)", DayOfUse) mBody = Replace(mBody, "(金額)", price) mBody = mBody & vbCrLf & vbCrLf & sign '末尾に署名を付与
CreateMailBody = mBody
End Function
' 処理?@ キーワードに合致するファイルを添付する
' 処理?A 1つ以上のファイルが見つかった場合、Trueを返す
Function FileAttach(attachObj As Object, keyword As String) As Boolean
Dim fileCnt As Long '★添付したファイル数をカウントする
Dim FileStorePath As String 'ファイル格納パス FileStorePath = "C:\Outlookテスト\file"
Dim FileName As String FileName = Dir(FileStorePath & "\" & "*")
'フォルダ内のファイル数、検索を繰り返す&" Do While FileName <> ""
'キーワードを含むファイルが見つかったら、下書きアイテムに添付する If InStr(FileName, keyword) > 0 Then attachObj.Add FileStorePath & "\" & FileName fileCnt = fileCnt + 1 '★添付したファイル数 End If
FileName = Dir()
Loop
Set attachObj = Nothing
'★1以上のファイルを添付した場合Trueを返す '(Boolean型の初期値はFalse) If fileCnt > 0 Then FileAttach = True
End Function
< 使用 Excel:Office365、使用 OS:unknown >
(もこな2 ) 2020/05/19(火) 23:02
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.