2014-07-07 3 views
2

현재 VBA 내에서 DDE를 사용하여 Bloomberg Terminal의 스크린 샷을 자동화하려고합니다. 현재 내가 자동으로 마이크로 소프트 XPS 문서 작성자를 통해 '인쇄'로 스크린 샷을 풀 수있는 방법을 마련했다 :Bloomberg DDE Screenshot 수출 자동화

Dim ch As Variant 
Dim CUSIP As String 
CUSIP = Range("B12") 

ch = DDEInitiate("winblp", "bbk") 
Call DDEExecute(ch, "<blp-1>" & CUSIP & " mtge<GO>") 
Call DDEExecute(ch, "<blp-1> DES<Go><print>") 
Application.Wait Now + TimeValue("0:00:02") 
Application.SendKeys "DES ", False 
Application.SendKeys "{enter}", False 

Call DDETerminate(ch) 

코드는 각 이후에 개발자 충돌 후 첫 번째 실행에 잘 작동하는 것 같다,하지만. 모든 의견이나 추가 제안을 부탁드립니다. 감사!

+1

흥미 롭. 어떤 라인이 충돌까지 정확하게 실행되는지를 확인할 수 있습니까? 문제를 격리하는 데 도움이 될 수 있습니다. 아마 관련 메모에, 나는 때때로 SendKeys가 신뢰할 수 없다는 것을 알았지 만, 그것은이 게시물과 관련이 없을 수도 있습니다. – hnk

+0

DDE 채널 링크를 실행 한 후에도 DDE 채널 링크가 열려있는 다른 곳에서는 포럼을 읽었습니다. DDEInitiate 줄을 첫 번째 실행 후 중단하려면 Excel 화면이됩니다. – user3813682

+0

또한 sendkeys 중 하나를 사용하는 것을 좋아하지 않지만 bloomberg 화면을 이미지 파일로 내보내는 데 여러 가지 해결 방법을 시도했지만 실패했습니다. 비록 결함이 있지만이 방법은 지금까지 최고의 결과를 yieled있다. – user3813682

답변

2

아마도 너무 늦었 겠지만이 또한 누군가에게 도움이 될 수 있습니다. 당신은 당신의 DDE 호출에 <copy> 명령을 사용하여 키를 보내 사용하지 않고 워드/엑셀/아웃룩에 붙여 넣을 수 있습니다 :

Call DDEExecute(ch, "<blp-1> <copy>")