말로, VBA와 프로그래밍 방식으로 메일 병합 데이터를 어떻게 변경할 수 있습니까?

StackOverflow https://stackoverflow.com/questions/1441071

문제

메일 병합의 소스 문서로 사용되는 Word 문서가 있습니다. 문서를 편집 할 수는 있지만 병합에 사용되는 데이터는 없습니다. 데이터 소스에서 일부 데이터를 변환해야합니다 (특히, 숫자를 가져 와서 단어로 값을 추가해야합니다 (예 : "3 백 42 (342)"). 변환을 수행하기 위해 VBA 기능을 작성할 수 있지만 해당 기능에 데이터를 얻는 것이 가장 좋은 방법을 잘 모르겠습니다.

매크로를 문서의 특정 지점과 연결하고 병합이 변환 프로세스를 유도하게 할 수있는 방법이 있습니까? (단어 필드에서 공식을 어떻게 사용할 수 있는지 생각하고 있습니다. 나는 몇 가지 양식을 가지고 있습니다. { IF { MERGEFIELD foo } > 75 { MERGEFIELD foo } { = { MERGEFIELD foo } * 20 } } 이미 문서에서. 내가 무언가를 추가 할 수 있다면 갈 수 있습니다 { FUNCTION WordNum { MERGEFIELD number } }, 그것은 이상적입니다.)

또는 Mail Merge의 DataSource에서 VBA를 사용하여 주위를 돌릴 수 있다고 생각합니다 (특히 document.MailMerge.DataSource) 및 필드를 다시 작성하십시오. 해당 경로로 이동하면 매크로를 어디에서 실행해야합니까? 데이터 소스에서 읽은 후에 데이터가 표시되지만 문서와 병합되기 전에 데이터를 얻을 수 있어야합니까?

도움이 되었습니까?

해결책 2

임베디드 워드 매크로에서 임의의 기능을 호출하는 방법이없는 것으로 보이므로 VBA 경로를 갔다.

나는 추가했다 AutoOpen 호출 된 소스 문서에 매크로 MailMerge.EditDataSource 그런 다음 테이블을 걸어 가서 변경했습니다.

다른 팁

Microsoft Query에서 데이터 변환을 수행 할 수 있습니까? 즉, 현재 위치 :

Data Source -> Mail Merge Template

데이터 소스와 Word 사이에있는 Microsoft 쿼리를 만듭니다.

Data Source -> Microsoft Query -> Mail Merge Template

내가 말로 메일 병합을 사용한 지 오래되었지만 많은 통제력을 발휘할 수 있다는 것을 기억하지 못한다 ...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top