>source

내 목표는 Outlook에서 MS Word로 활성 전자 메일 본문을 복사하여 붙여넣고 Word를 지정된 대상에 저장하는 것입니다.

코드

Dim objMail as Outlook.MailItem
Dim objWord As Object
Dim objDocument As Object
Dim objFSO As Object
Dim objTextStream As Object
Set objMail = Application.ActiveInspector.CurrentItem
Set objWord = CreateObject("Word.Application")
Set objDocument = objWord.Documents.Add
objMail.GetInspector().WordEditor.Range.FormattedText.Copy
objDocument.Range.Paste

정확한 방법인가요?

  • 답변 # 1

    실제로 이메일을 선택했는지 (목록 내에서 열거 나 열 었는지) 다음과 같이 형식이 지정된 본문을 복사하면 확인할 수 있습니다.

    Private Sub CopyEMailBodyToWord()
        Dim objOutlook As Outlook.Application
        Dim objMail As Object      'Outlook.MailItem, but has to be checked later
        Dim objWord As Object
        Dim objDocument As Object
        Set objOutlook = Outlook.Application
        Select Case TypeName(objOutlook.ActiveWindow)
        Case "Explorer"     ' get current item in list view
            Set objMail = objOutlook.ActiveExplorer.Selection.Item(1)
        Case "Inspector"    ' get open item
            Set objMail = objOutlook.ActiveInspector.CurrentItem
        End Select
        If objMail.Class = olMail Then
            Set objWord = GetObject(, "Word.Application")
            If objWord Is Nothing Then Set objWord = CreateObject("Word.Application")
            Set objDocument = objWord.Documents.Add
            ' copy formatted body:
            objMail.GetInspector.WordEditor.Range.FormattedText.Copy
            objDocument.Range.Paste
            ' or copy text only:
            'objDocument.Range.Text = objMail.Body
            With objWord.FileDialog(msoFileDialogSaveAs)
                .Title = "Save ..."
                .InitialFileName = objWord.Options.DefaultFilePath(wdDocumentsPath) & _
                    "\" & objMail.Subject & ".docx"
                If .Show <> False Then
                    objDocument.SaveAs _
                        FileName:=.SelectedItems(1), _
                        AddToMru:=False
                End If
            End With
        End If
    End Sub
    
    

  • 답변 # 2

    이 작업을 수행하려고합니까?

    Option Explicit
    Public Sub Example()
        Dim Email As Outlook.MailItem
        Set Email = Application.ActiveInspector.CurrentItem
        'Word document
        Dim wdApp As Word.Application
        Set wdApp = CreateObject("Word.Application")
        Dim wdDoc As Word.Document
        Set wdDoc = wdApp.Documents.Add
            wdDoc.Activate
        Dim wdRange As Word.Range
        Set wdRange = wdDoc.Range(0, 0)
        'Add email to the document
        wdRange.Text = Email.Body
        wdApp.Visible = True
        wdDoc.SaveAs2 FileName:="C:\Temp\Example.docx", FileFormat:= _
            wdFormatXMLDocument, CompatibilityMode:=15
    End Sub
    
    

    CurrentItem 의 오류를 피하기 위해 ActiveWindow.Class와 함께 작업하고 싶을 수도 있습니다.

  • 이전 Kubernetes에서 "정상 상태"상태 인 "준비 검사"가있는 포드는 다른 포드가 준비 될 때까지 다른 포드에서 확인되지 않습니까?
  • 다음 angularjs에서 checkall 및 확인란이 선택되면 배열로 푸시 및 스플 라이스