Jacob와 VB 코드를 Jack으로 변환하는 방법을 설명 할 수 있습니까?

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

  •  21-12-2019
  •  | 
  •  

문제

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 객체로 반환 값을 변환하는 데 사용됩니다.

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