찾기 매크로 문의

안녕하세요.

한글 2024입니다.
아래 코드는 찾기 (Ctrl+Q, F)에 대한 자동 매크로 기록된 코드입니다.

function OnScriptMacro_script3()
{
	HAction.GetDefault("FindDlg", HParameterSet.HFindReplace.HSet);
	with (HParameterSet.HFindReplace)
	{
		MatchCase = 0;
		AllWordForms = 0;
		SeveralWords = 0;
		UseWildCards = 0;
		WholeWordOnly = 0;
		AutoSpell = 1;
		Direction = 0;
		IgnoreFindString = 0;
		IgnoreReplaceString = 0;
		FindString = "aaa";
		ReplaceString = "";
		fIgnoreMessage = 1;
		HanjaFromHangul = 0;
		FindJaso = 0;
		FindRegExp = 0;
		FindTextInPicture = 0;
		FindStyle = "";
		ReplaceStyle = "";
	}
	HAction.Execute("FindDlg", HParameterSet.HFindReplace.HSet);
	HAction.GetDefault("RepeatFind", HParameterSet.HFindReplace.HSet);
	with (HParameterSet.HFindReplace)
	{
		ReplaceString = "";
		FindString = "aaa";
		IgnoreReplaceString = 0;
		IgnoreFindString = 0;
		Direction = FindDir("Forward");
		WholeWordOnly = 0;
		UseWildCards = 0;
		SeveralWords = 0;
		AllWordForms = 0;
		MatchCase = 0;
		ReplaceMode = 0;
		ReplaceStyle = "";
		FindStyle = "";
		FindTextInPicture = 0;
		FindRegExp = 0;
		FindJaso = 0;
		HanjaFromHangul = 0;
		IgnoreMessage = 1;
		FindType = 1;
	}
	HAction.Execute("RepeatFind", HParameterSet.HFindReplace.HSet);
}

문서의 내용은 대략 아래 사진과 같습니다.

문서에서
aaa 이전 위치에서 aaa를 찾으면 당연히 찾아지는 게 맞지만
aaa 이후 위치에서 aaa를 찾으면

위 메시지가 떠야하는게 맞다고 생각하는데
Ctrl + Q, F 로 해보면 위 메시지가 뜨는 반면
위의 매크로 코드를 실행해보면 위 메시지가 뜨지 않고 바로
aaa를 찾아서 블록으로 표시합니다.

매크로 코드로 어떻게 해야 aaa 이후 위치에서
더 이상 찾지 않도록 할 수 있는지 궁금합니다.

1개의 좋아요

안녕하세요.

찾기 동작을 확인해보니,
매크로를 통해서 찾기를 수행하면 기본적으로 문서 처음부터 다시 찾기를 실행하도록 되어있네요.
질문주신 문서 끝에서 찾기를 멈추는 동작은 스크립트로 할 수가 없네요. :anxious_face_with_sweat:

감사합니다.

2개의 좋아요

ignoremessage를 0으로 하고, SetMessageBoxMode에서 "아니오"를 선택하게 하세요ㅎ

SetMessageBoxMode(0x00020000);
인가요?

제가 해보니 결과는 같습니다. ㅠ

1개의 좋아요

YESNO 메시지박스에 NO로 설정하면 ilco님이 말씀하신대로 됩니다.
SetMessageBoxMode(0x00020000);

단, 외부 응용프로그램에서만 가능하고, 한글 내의 스크립트 동작에는 적용되지가 않습니다.

1개의 좋아요

저도 위 방법은 사용하고 있던 것이라 알고는 있었는데…
한글 매크로에서 적용이 안되서 질문 드렸던 거예요.

답변 감사합니다.

1개의 좋아요