블록 내의 수식 개수

안녕하세요.
위 사진처럼 블록으로 선택된 부분 안에 수식이 몇 개 있는지 알 수 있는 방법이 있을까요?
(한/글 내장 매크로에서 실행할 수 있는 방법을 알고 싶습니다.)

1개의 좋아요

안녕하세요,
저라면 아래와 같이 로직을 구성할것 같습니다.

  1. GetSlectedPosBySet로 선택 영역 시작 종료지점 가져오기
  2. GetHeadCtrl로 문서의 첫 컨트롤 가져오기
  3. Next를 통해서 연결된 컨트롤들 확인하기
  4. 컨트롤의 GetCtrlID를 통해 어떤 컨트롤인지 파악 ( 수식 : eqed)
  5. 수식인 경우 GetAnchorPos를 통해 컨트롤의 위치 파악
  6. 1번에서 구한 영역 안인경우 선택된 영역안의 수식으로 체크
  7. 반복하며 카운트 …

(수식이 글자처럼 취급이 되어있을 경우입니다.)

이렇게 복잡한 방법밖에 없을것 같네요 ㅠ 감사합니다.

GetSelectedPosBySet
현재 설정된 블록의 위치정보를 얻어온다. (GetSelectedPos의 ParameterSet버전)

● 구문(Syntax)
C++

BOOL GetSelectedPosBySet(LPDISPATCH sset, LPDISPATCH eset) ver:0x06050110

javascript

boolean GetSelectedPosBySet(ParameterSet sset, ParameterSet eset)

● 매개변수(Parameters)
sset
설정된 블록의 시작 파라메터셋 (ListParaPos)
eset
설정된 블록의 끝 파라메터셋 (ListParaPos)

● 반환값(Return)
성공하면 true, 실패하면 false

● 설명(Remarks)

● 예제(Example)
javascript

function {
var sset, eset;
sset = pHwpCtrl.CreateSet(“ListParaPos”);
eset = pHwpCtrl.CreateSet(“ListParaPos”);
var ret = pHwpCtrl.GetSelectedPosBySet(sset, eset);

 var slist, spara, spos;
 var elist, epara, epos;
 
 slist = sset.Item("List");
 spara = sset.Item("Para");
 spos = sset.Item("Pos");

 elist = eset.Item("List");
 epara = eset.Item("Para");
 epos = eset.Item("Pos");

}

3개의 좋아요

빠른 답변 감사드립니다.

저도 같은 생각으로 해 보려다가
그림에서
세 번째 수식의 Pos가
첫번째 수식의 Pos 보다 작아서
어떻게 할 지가 고민 되었습니다.

2개의 좋아요

안녕하세요 ^^
앵커의 순서보다는 앵커의 pos가 선택한 영역 안에 있따면 선택영역에 있는걸로 체크하면 될것같습니다~!

3개의 좋아요

제가 Pos 의 개념을 잘못 이해하고 있었습니다.
한/글 상태 바에 나오는 "칸"과 혼동했습니다.

감사합니다.