2013-05-07 3 views
2

여기 내 코드에 대해 마음에 들지 않는 것이 확실합니다. .NET에서는 경험이 있지만 VBA는 새로운 것입니다. myFunction ('args')를하지 않고 myFunction args를 대신 호출하는 기능을 알고 있지만 여기에 그 문제는 없습니다. 어떤 도움을 주셔서 감사합니다. 감사!개체 필요 VBA Outlook

Public Sub LogMeIn() 
Dim item As Outlook.MailItem 
Dim body As String 
Dim subject As String 
Dim oFld As Outlook.Folder 
Dim oNS As Outlook.NameSpace 
Dim oMails As Outlook.items 
Dim oProp As Outlook.PropertyPage 
Dim mySelection As Word.Selection 
Dim strItem As String 
Dim omailitem As Variant 

Set oNS = Application.GetNamespace("MAPI") 
Set oFld = oNS.GetDefaultFolder(olFolderInbox) 
Set oMails = oFld.items 

For Each omailitem In oMails 
Set body = omailitem.body 
Set subject = omailitem.subject 
Dim pos As Integer 
Set pos = 0 
Dim copyText As String 
If InStr(omailitem.subject, "Your LogMeIn Security Code:") > 0 Then 
Set copystr = Mid(omailitem.body, pos + 28, 9) 
Dim dataToSave As New DataObject 
dataToSave.SetText copystr 
dataToSave.putinclipboard 

'MsgBox ("subject true") 
End If 

'MsgBox ("subject true") 
'If omailitem.subject.Find("Your LogMeIn Security Code:") Then 
'MsgBox ("subject true") 
'End If 

Next 

End Sub 

Private Sub Application_NewMail() 
Call LogMeIn 
End Sub 
+0

내 대답이 맞으면이 문제가있는 다른 사람들에게 받아 들여야한다고 생각하십시오.) –

답변

4

당신은 객체 참조 데이터 유형에 할당하려고합니다. 문자열은 VBA의 데이터 형식이며 개체가 아닙니다. 키워드로 Set이 object와 함께 사용됩니다. 데이터 유형이거나이 오류가 발생하면이 키워드를 제거하십시오.

Dim body As String 
Dim subject As String 

Set body = omailitem.body 
Set subject = omailitem.subject 

Dim pos As Integer 
Set pos = 0 

[...]