へっぽこエンジニアの覚え書き

主に、バッチとTeraTermマクロのことについて書きます。

OutlookでのVBA

※OutlookVBA

Private Declare PtrSafe Function AddClipboardFormatListener Lib "user32.dll" (ByVal hWnd As LongPtr) As Long
Private Declare PtrSafe Sub sleep Lib "kernel32" Alias "Sleep" (ByVal dwMilliseconds As Long)
Private Declare PtrSafe Function OpenClipboard Lib "user32" (ByVal hWnd As Long) As Long
Private Declare PtrSafe Function EmptyClipboard Lib "user32" () As Long
Private Declare PtrSafe Function CloseClipboard Lib "user32" () As Long

Sub CreateMail() '関数名は何でもOK


Dim tol As Outlook.Application

'Outlookのオブジェクトを生成する
Set tol = CreateObject("Outlook.Application")
Set appExcel = CreateObject("Excel.Application")

Dim CB As New DataObject
Dim hensu As String

'クリップボードをカラにする
OpenClipboard 0
EmptyClipboard
CloseClipboard


modoru:
If appExcel.clipboardFormats(1) = xlClipboardFormatText Then
GoTo tugi
Else
sleep 3000
GoTo modoru
End If
tugi:

With CB
.GetFromClipboard ''クリップボードからDataObjectにデータを取得する
hensu = .GetText ''DataObjectのデータを変数に取得する
End With

' メールを作成する
With tol.CreateItem(0)
.To = "****@****.com" ' 宛先
.CC = "****@****.com" ' Cc
.Subject = "○×△会議の議事録" ' 件名
.Display ' 表示
.Body = "○○様" & vbCrLf & vbCrLf & _
hensu & vbCrLf & vbCrLf & _
"お世話になっております。★★です。" & vbCrLf & vbCrLf & _
"○×△会議の議事録を送ります。" & vbCrLf & vbCrLf & _
"よろしくお願いいたします。" & vbCrLf & vbCrLf '本文
End With

Set tol = Nothing
End Sub