Advertisement
yumetodo

q12169744517

Feb 2nd, 2017
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Public Sub SendEmailImpl(ByRef EmailAdressTo)
  2.     Dim NotSet As Object    ' lotus.NOTESSESSION
  3.    Dim NotDB As Object     ' lotus.NOTESDATABASE
  4.    Dim NotDoc As Object    ' lotus.NOTESDOCUMENT
  5.    Dim NotItem As Object ' lotus.NOTESRICHTEXTITEM
  6.    Dim NotAtt As Object    ' lotus.NOTESEMBEDDEDOBJECT
  7.    Dim AttFName As String  ' 添付ファイル名(フルパス)
  8.  
  9.     ' Notesのセッションを起動する
  10.    Set NotSet = CreateObject("Notes.NotesSession")
  11.     ' NotesDatabaseオブジェクトを作成し、そのデータベースを開く
  12.    Set NotDB = NotSet.GETDATABASE("", "")
  13.     ' NotesDBをユーザーのメールDBに割り当てた後に開く
  14.    NotDB.OpenMail
  15.  
  16.     ' NotesDBに文書を作成し、新規文書をオブジェクト変数にセットする
  17.    Set NotDoc = NotDB.CREATEDOCUMENT()
  18.     ' 件名をセットする
  19.    NotDoc.Subject = "今日は当番です。"
  20.     ' 宛先をセットする
  21.    NotDoc.SendTo = Array(EmailAdressTo)
  22.     'NotDoc.CopyTo = Array(EmailAdressCC)
  23.    'NotDoc.blindCopyTo = Array("xxx@xxx")
  24.  
  25.     ' 文書にリッチテキストアイテムを作成する
  26.    Set NotItem = NotDoc.CreateRichTextItem("BODY")
  27.     ' 本文をセットする
  28.    With NotItem
  29.         .APPENDTEXT "今日は当番日です。"
  30.         .ADDNEWLINE 1
  31.         .APPENDTEXT "よろしくお願いいたします。"
  32.         .ADDNEWLINE 2
  33.         ' 添付ファイル名をセットする
  34. '        AttFName = "D:\TEST\Book1.xls"
  35.        ' ファイルを添付する
  36. '        Set NotAtt = .EmbedObject(EMBED_ATTACHMENT, "", AttFName)
  37.        .ADDTAB 1
  38.         .ADDNEWLINE 1
  39.     End With
  40.  
  41.     ' メールを送信する
  42.    NotDoc.Send False
  43.  
  44.     ' オブジェクト変数を解放する
  45.    Set NotAtt = Nothing
  46.     Set NotItem = Nothing
  47.     Set NotDoc = Nothing
  48.     Set NotDB = Nothing
  49.     Set NotSet = Nothing
  50.  
  51.     MsgBox "メール発信", vbOKOnly + vbInformation
  52.  
  53. End Sub
  54. Sub SendEmail
  55.     ' @type {variant[5]}
  56.    Dim SendLists(4)' 5組あるとする
  57.    '適当にでっち上げで作ったEmailAdress、適当に変えるべし。
  58.    SendLists(0) = Array("connossixe-2899@yopmail.com", "Ressill1967@superrito.com")
  59.     SendLists(1) = Array("creraposla@housat.com", "zuavuwrm@vomoto.com")
  60.     SendLists(2) = Array("ivlayva2i4@g0b8oz.com", "_jof_19@d-yatzic-j.com")
  61.     SendLists(3) = Array("kp3aw1csd365@1ce5b51f4.com", "lcpobyc@v8rl8bz.com")
  62.     SendLists(4) = Array("d2m8qp.jq6_vxn2@8odkq2max.com", "v8mupqj3kzek0@td6dzh4v.com")
  63.  
  64.     Const BeginDate = DateValue("2017/01/02")'2017/01/02は月曜日、適当に変えるべし。
  65.  
  66.     If Weekday(Date) = vbSunday And Weekday(Date) = vbSunday Then
  67.         '土日だから死スべし、慈悲はない
  68.    End If
  69.  
  70.     Const WeekDiff = DateDiff("w", Date, BeginDate)'これconstにできるのかね?わからん。
  71.  
  72.     If WeekDiff < 0 Then
  73.         'BeginDateの設定がおかしい。起算日より前らしいで、今日は。
  74.    End If
  75.  
  76.     Dim Email
  77.     '基準日(BeginDate)からの経過週をSendListsの要素数で割ったあまりに
  78.    '今日の曜日(月曜日起算なので-2)を足してSendListsの要素数で割ったあまりを求めるのはだるいので
  79.    '基準日(BeginDate)からの経過週に今日の曜日を足してSendListsの要素数で割ったあまりが送信対象の配列のoffset
  80.    'UBoundは配列の最大要素番号を返すんだってね、VBS作ったやつは頭がオカシイのでは?
  81.    For Each Email In SendLists((WeekDiff + Weekday(Date) - 2) Mod (UBound(SendLists) + 1))
  82.         SendEmailImpl Email' CCに入れる条件が謎なので一件づつToにぶち込んでバラバラに送信
  83.    Next
  84. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement