Jacob와 VB 코드를 Jack으로 변환하는 방법을 설명 할 수 있습니까?
문제
Jacob / Java를 통해 템플릿에서 Word 문서를 만들려고합니다.Jacob에 대한 괜찮은 문서를 찾을 수 없습니다.누군가가 Dispatch가 작동하는 방법을 설명 해주십시오 (.pt | .put | .p.todispatch)?다음 코드를 Jacob으로 변환하려고합니다.
Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
Selection.Cells.Merge
.
나는 시도했다 :
Dispatch.call(oSelection, "MoveRight", 2, "Extend");
Dispatch.call(oSelection, "Merge").toDispatch();
.
그러나 확실히 작동하지 않습니다.
도움이되는 모든 도움이 될 것입니다.
해결책
Jacob에는 아무런 문제가 없습니다. 그것은 광고 된대로 작동합니다.
먼저 사용하는 Word 2003에 대한 객체 참조를 찾아야합니다. 그 이유는 명명 된 매개 변수를 사용할 때 일부 선택적 매개 변수가 생략 될 수 있으며 일부 매개 변수는 순서로 지정 될 수 있습니다. 그래서 나는 처음으로 선택의 서명을 확인해야합니다. 다음은 moveright에 대한 설명서입니다. http : // msdn.microsoft.com/en-us/library/aa212388(v=office.11).aspx
expression.MoveRight(Unit, Count, Extend)
.
Unit 및 Extend는 열거 형이므로 올바른 정수 상수를 찾아야합니다. wdcharacter는 1이고 WDEXTEND는 1이며,이 값을 다르게 어떻게 다르게하는 방법은 Office 응용 프로그램의 VBA 편집기에서 개체 브라우저를 보는 것입니다).
가위가 올바른 오브젝트 인 경우, 이것은 작동해야합니다 :
Dispatch.call(oSelection, "MoveRight", 1, 2, 1);
.
이제 두 번째 줄을 위해 번역에서 셀을 잊었습니다. 이와 같은 것이 필요합니다 :
Dispatch cells=Dispatch.get(oSelection,"Cells").toDispatch();//Selection.Cells.
Dispatch.call(cells, "Merge"); //Selection.Cells.Merge()
.
병합이 아무 것도 반환하지 않기 때문에 두 번째 줄에서 두 번째 줄에서 todispatch를 호출하지 않습니다. TodisPatch는 첫 번째 줄과 같은 반환 값을 나중에 사용할 수 있도록 나중에 사용할 수 있도록 Dispatch 객체로 반환 값을 변환하는 데 사용됩니다.