2012-05-30 2 views
1

(활성) 문서의 텍스트가 변경되는 즉시 이벤트를 트리거하고 싶습니다. 내가 이해하는 한, WindowSelectionChange이 가장 적합합니다. 이것이 사실입니까? 그렇다면 정확히 어떻게 사용할 수 있습니까? 나는 문서 here을 읽었으나, 특히 어떤 코드가 어느 파일에 들어 있는지에 관해서는 머리가 아프다. 지금은 프로젝트의 "모듈"폴더에있는 기본 모듈 파일에 모든 코드가 있습니다.VBA MS Word : 텍스트가 바뀔 때 트리거 이벤트

FYI : 문서에 실제로 입력하지 않고 Ctr + A를 사용하여 기존 콘텐츠를 선택하고 Ctrl + V를 눌러 새 콘텐츠로 바꾸십시오. 그 순간에 나는 사건을 일으키기를 원한다. ,

Sub EditPaste() 

    Selection.Paste 
    'Other code 

End Sub 

그것은이 사건을 '텍스트가 변경된'있어 완전히 동일하지 :

+0

아니요 'WindowSelectionChange'는 '선택'이 변경되어 매우 성가 시게 될 때마다 트리거하므로 적합하지 않습니다. AFAIK와 나는 틀릴 수도 있지만 MS Word에서 텍스트 변경 사항을 걸러 낼 수있는 다른 이벤트는 없습니다. BTW 일반적으로 'CTL V'또는 'Pasting'키 조합을 잡아 두시겠습니까? '붙여 넣기 (Paste) '이벤트라면 이것을 볼 수 있을까요? http://www.jkp-ads.com/articles/catchpaste.asp –

+0

링크에서 보듯이 일반적인 붙여 넣기 이벤트가 아니라 클릭 및 키 이벤트입니다. 어쨌든,'Application.OnKey'는 Word에서 작동하지 않는 것 같습니다. 나에게 Ctrl + V가 텍스트를 지나치고 매크로를 호출하는 한 이벤트가 트리거되는 방법은 중요하지 않습니다. 지금까지는 작동하지 못했습니다. ( – Daan

답변

4

은 내가 나를 내가 원하는 결과를 준 무언가를 발견했다, 내 특정 질문에 대한 해결책을 찾을 수 없습니다 있지만 그러나 나는 새로운 텍스트를 붙임으로써 텍스트를 변경하기 때문에 그것이 나입니다. Sub라는 이름의 붙여 넣기 이벤트는 actual과 동일하므로 붙여 넣을 때마다이 Sub가 호출됩니다. 그런 다음 실제 붙여 넣기 작업을 추가 한 다음 자신의 코드를 추가하는 것만 큼 문제가됩니다.

간단히 말해서, 작업에 대한 이벤트를 만드는 대신 작업을 재정의하는 것이 훨씬 쉽습니다.