안녕하세요.
위 사진처럼 블록으로 선택된 부분 안에 수식이 몇 개 있는지 알 수 있는 방법이 있을까요?
(한/글 내장 매크로에서 실행할 수 있는 방법을 알고 싶습니다.)
안녕하세요,
저라면 아래와 같이 로직을 구성할것 같습니다.
- GetSlectedPosBySet로 선택 영역 시작 종료지점 가져오기
- GetHeadCtrl로 문서의 첫 컨트롤 가져오기
- Next를 통해서 연결된 컨트롤들 확인하기
- 컨트롤의 GetCtrlID를 통해 어떤 컨트롤인지 파악 ( 수식 : eqed)
- 수식인 경우 GetAnchorPos를 통해 컨트롤의 위치 파악
- 1번에서 구한 영역 안인경우 선택된 영역안의 수식으로 체크
- 반복하며 카운트 …
(수식이 글자처럼 취급이 되어있을 경우입니다.)
이렇게 복잡한 방법밖에 없을것 같네요 ㅠ 감사합니다.
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");
}
빠른 답변 감사드립니다.
저도 같은 생각으로 해 보려다가
그림에서
세 번째 수식의 Pos가
첫번째 수식의 Pos 보다 작아서
어떻게 할 지가 고민 되었습니다.
안녕하세요 ^^
앵커의 순서보다는 앵커의 pos가 선택한 영역 안에 있따면 선택영역에 있는걸로 체크하면 될것같습니다~!
제가 Pos 의 개념을 잘못 이해하고 있었습니다.
한/글 상태 바에 나오는 "칸"과 혼동했습니다.
감사합니다.