Outlook VBA-현재 선택한 텍스트를 클립 보드에 복사하는 방법은 무엇입니까?


4

내 질문

Microsoft Outlook 2007에서 현재 선택된 텍스트 를 얻는 방법

  • 열린 메시지 창에서
  • 또는 미리보기 창에서 현재 선택된 메시지에서

그리고 복사 가 클립 보드에?

Microsoft Outlook 2007을 사용하고 있습니다.


내가 이미 시도한 것

DataObjects를 사용하여 클립 보드에 텍스트를 넣거나 클립 보드에서 텍스트를 가져올 수 있다는 것을 알고 있습니다.

어려움은 현재 선택된 텍스트얻는 것입니다

다음 명령을 시도했습니다.

  • Outlook.copy
  • Outlook.selection.copy
  • Outlook.activeexplorer.selection.item (1). ...
    많은 변형이 있지만 성공하지 못했습니다.

VBA를 통해 Outlook에서 현재 선택된 텍스트를 가져올 수 없다는 일부 소스를 찾았지만 적어도 Ctrl-C (복사) 명령을 호출 한 다음 클립 보드의 내용을 사용할 수 있어야한다고 생각합니다.

또한 여기 에 설명 된 것처럼 검사기를 사용하여 일부 솔루션을 우연히 발견 했지만 오류 메시지가 나타납니다. 아마도 "MS Word Object Library"를 참조하는 것을 잊었 기 때문일 것입니다. 월요일에 시도하겠습니다.


1
이미 무엇을 시도 했습니까? 결과는 어땠습니까? 정확히 어디에 붙어 있습니까?
Ƭᴇcʜιᴇ007 16

1
귀하의 의견에 감사드립니다-죄송합니다! 나는 정말로 압박을 받고 급하게되었지만, 여기서 질문을하는 것은 옳고 정중 한 방법이 아닙니다. 내 질문을 편집했으며 downvote를 제거해 주셔서 감사합니다. 자세한 답장을 보내 주셔서 감사합니다. 월요일에 컴퓨터에 다시 액세스 할 수있게되면 월요일에 다시 시도하겠습니다.
MostlyHarmless

답변:


5

Outlook은 Word (설치된 경우)를 편집기로 사용하기 때문에 약간의 어려움이 있습니다. :)

Word 응용 프로그램, Word 문서 및 선택 항목을 참조해야합니다.

다음 코드가 Outlook에서 작동하려면 참조 ( VBA 편집기-> 도구-> 참조 )를 "Microsoft Word 개체 라이브러리"에 추가하고 하나를 "Microsoft Forms 개체 라이브러리"에 추가해야 실제로 복사 할 수 있습니다. 텍스트 시스템 클립 보드

참고 : Office 2013에서는 MS Forms 개체가 목록에 없으므로 VBA 프로젝트에 UserForm을 추가하여 참조를 자동으로 추가 한 다음 양식을 삭제했습니다. 참조가 멈췄습니다.

어쨌든 많은 출처를 파헤 쳤고 강조 표시된 텍스트를 클립 보드에 복사하는 몇 가지 코드가 있습니다. 일부 오류 검사 (Outlook 2013에서 테스트 됨) :

Public Sub CopyTextToClipBoard()

    Dim objItem As Object
    Dim objInsp As Outlook.Inspector

    Dim objWord As Word.Application
    Dim objDoc As Word.Document
    Dim objSel As Word.Selection
    On Error Resume Next

    ' Reference the current Outlook item
    Set objItem = Application.ActiveInspector.CurrentItem
    If Not objItem Is Nothing Then
        If objItem.Class = olMail Then
            Set objInsp = objItem.GetInspector
            If objInsp.EditorType = olEditorWord Then
                Set objDoc = objInsp.WordEditor
                Set objWord = objDoc.Application
                Set objSel = objWord.Selection

                On Error GoTo NotText
                With New MSForms.DataObject
                    .SetText objSel.Text
                    .PutInClipboard
                End With
                On Error Resume Next       

            End If
        End If
    End If

    Set objItem = Nothing
    Set objWord = Nothing
    Set objSel = Nothing
    Set objInsp = Nothing

NotText:
    If Err <> 0 Then
        MsgBox "Data on clipboard is not text."
    End If

End Sub

1
감사합니다. 미리보기 창 ( Outlook 2007) 에서 텍스트를 선택해도 제대로 작동합니다 ! (늦은 피드백에 대해 죄송합니다)
MostlyHarmless
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.