한/글 매크로

1 개요[ | ]

한/글 매크로는 한글과컴퓨터 사의 한/글에서 제공하는 매크로 기능을 이른다.

2 사용자의 입력을 통한 매크로 정의[ | ]

  • 스크립트 매크로 - 매크로 정의(Alt+Shift+H)를 누르고, 정의할 매크로를 선택한 뒤 '정의' 버튼을 누른다.
  • 그러면 새로운 매크로 동작으로 쓰일 사용자 동작을 자동으로 기록하기 시작한다.
  • '스크립트 매크로 - 매크로 일시 중지'로 매크로 기록을 일시 중지하거나, '스크립트 매크로 - 매크로 중지'로 매크로 기록을 마칠 수 있다.

3 매크로 실행[ | ]

스크립트 매크로 - 매크로 실행(Alt+F8)을 누르면 '매크로 실행' 창에서 정의한 매크로의 목록을 볼 수 있고, 실행할 매크로를 골라 실행할 수 있다.

4 매크로 코드 편집[ | ]

'매크로 실행' 창의 매크로 목록에서 특정 매크로를 누른 다음, '코드 편집'을 눌러 해당하는 매크로의 코드를 편집하는 방식으로 매크로를 정의할 수 있다.

4.1 매크로 코드의 기본 구조[ | ]

매크로 코드는 기본적으로 아래와 같은 구조를 가지며, 코드는 자바스크립트로 작성된다.

function  OnScriptMacro_매크로명()
{
	HAction.Run("실행할 명령");
	HAction.Run("실행할 명령");
...
}

실행할 명령에 들어갈 수 있는 명령어의 목록은 찾아보기 1을 참고한다.

4.2 Action과 Parameter[ | ]

BreakPara(문단 나누기)나 DeleteBack(Backspace)와 같은 간단한 Action의 경우 Parameter를 요구하지 않는다. 그러나 어떤 Action은 실행하기 위해서 부가적인 정보인 Parameter를 요구한다.

각 Action에 필요한 Parameter는 찾아보기 1을, Parameter의 목록은 찾아보기 2를 참고한다.

"Hello World!" 문구를 문서에 넣는 것을 예제로 특정 Action의 Parameter에 어떻게 접근할 수 있는지 알아본다.

function OnScriptMacro_macro()
{
	HParameterSet.HInsertText.Text = "Hello World!";
	HAction.Execute("InsertText", HParameterset.HInsertText.Hset);
}

따라서 특정 Action의 Parameter에 접근한 뒤 실행하려면 아래와 같이 해야 함을 알 수 있다. (Parameter가 포함된 Action을 실행하고자 할 때는 HAction.Execute();를 이용한다.)

function OnScriptMacro_macro()
{
	HParameterSet.H(Action명).(Parameter Item ID) = ;
	HAction.Execute("Action명", HParameterset.H(Action명).Hset);
}

Run과 Execute 말고도 다양한 함수를 사용하여 매크로를 정의할 수 있다. 매크로에서 사용 가능한 함수 목록의 경우 찾아보기 3을 참고하면 된다.

5 예제[ | ]

  • 앞의 글자를 하나 지우면서 글꼴 크기가 20pt이며, 글자 음영 색이 cyan인 "Hi!" 문자를 문서에 삽입하는 매크로
function OnScriptMacro_macro()
{
	var a = HParameterSet.HCharShape;
	a.ShadeColor = 0x00ffff00;
	a.Height = 5680;
	a.SizeLatin= 100;
	a.FontTypeLatin = 1;
	a.SpacingLatin = 0;
	a.RatioLatin=100;
	HAction.Execute("CharShape", HParameterSet.HCharShape.Hset);
	HParameterSet.HInsertText.Text = "Hi!";
	HAction.Execute("InsertText", HParameterset.HInsertText.Hset);
	HAction.Run("Delete");
}

6 찾아보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}