AllReplace에 관하여 질문 드립니다.

안녕하세요.

아래 코드는 모두 바꾸기(빈 칸 2개 → 빈 칸 1개) 매크로 코드입니다.

function OnScriptMacro_script12()
{
	HAction.GetDefault("AllReplace", HParameterSet.HFindReplace.HSet);
	with (HParameterSet.HFindReplace)
	{
		MatchCase = 0;
		AllWordForms = 0;
		SeveralWords = 0;
		UseWildCards = 0;
		WholeWordOnly = 0;
		AutoSpell = 1;
		Direction = FindDir("AllDoc");
		IgnoreFindString = 0;
		IgnoreReplaceString = 0;
		FindString = "  ";
		ReplaceString = " ";
		ReplaceMode = 1;
		IgnoreMessage = 1;
		HanjaFromHangul = 0;
		FindJaso = 0;
		FindRegExp = 0;
		FindTextInPicture = 0;
		FindStyle = "";
		ReplaceStyle = "";
		FindType = 1;
	}
	XHwpMessageBox.String = HAction.Execute("AllReplace", HParameterSet.HFindReplace.HSet);
	XHwpMessageBox.DoModal();
}

실행해 보니 첨부 사진과 같이 캐럿이 있는 위치에 따라 결과가 다르게 나옵니다.

이유가 궁금합니다. 수고하세요.

replaceAll

안녕하세요

캐럿 위치부터 찾기를 하는데 처음에는 캐럿 위치부터 문서 끝까지 검색을 하고
되돌이 검색을 하기 때문에 문서 처음부터 캐럿 위치까지 검색을 합니다
되돌이 검색을 할 때 못 찾으면 false로 리턴하는 문제가 있었습니다.
담당부서에 수정요청하겠습니다.

감사합니다.

1개의 좋아요