--------------------------------------------------------<필독!>----------------------------------------------------------
# 작업환경 : 한글버전 2020
# 매크로 실행시 오류가 있다면 한글 업데이트가 최신인지 꼭! 확인해주세요
# 스크립트 코드를 실행시 버전에 따라 작동오류가 생길 수 있습니다.
# 하위 버전 사용시 생기는 문제
- 일부 매크로 녹화가 되지 않는 경우가 생깁니다. (경험담)
- 제공되는 스크립트 코드가 읽히지 않는 경우가 있습니다. (경험담)
(단, hancom에서 지속적인 업데이트와 문제점을 해결해 왔다면 업데이트시 작동할 수도 있습니다.)
---------------------------------------------------------------------------------------------------------------------------
들어가기 전에 읽어주세요!
- 너무 이해하려고 애쓰지 마세요! 이해 하지 못해도 사용하는데 지장은 없습니다.
녹화기능을 사용하면 자동으로 적히기 때문입니다.
- 어떤 구조로 되어 있는지 정도만 이해하고 이렇게 사용해야 매크로가 동작한다는 것만 알아두세요!
준비하기
지난 글에서 배운 녹화하기 기능으로 다음 순서로 녹화를 하면
녹화 순서) 상하좌우 방향키를 순서대로 누른 뒤 본문에 '안녕?' 이라고 글을 적은후 녹화 저장을 하였습니다.
스트립트창을 열면 다음과 같은 코드가 작성되었음을 알 수 있습니다.
[매크로 정의하기] : Alt + Shift + H 누르고 저장할 위치 클릭 후 정의버튼 누르기
[매크로 중지하기] : Alt + Shift + X
[스크립트창 띄우기] : Alt + Shift + L 을 누르고 난 뒤 Alt + C 누르기
코드스타일1) HAcion.Run("액션");
[그림1]에서 ①번에 해당되는 부분을 가져와서 공통된 부분만 빨간색으로 표시를 하면 다음과 같습니다.
HAction.Run("MoveUp");
HAction.Run("MoveDown");
HAction.Run("MoveLeft");
HAction.Run("MoveRight");
HAction.Run("액션");
에서 "액션"에 들어가는 문구들에 대한 내용은 다음 포스팅 API 사용하기에서 다루도록 하겠습니다.
지금은 이런 패턴이 있구나 정도로 이해해주세요.
코드스타일2) HAction.GetDefault(); 와 HAction.Execute();
[그림1]에서 ②번에 해당되는 부분을 가져오고 이와 비슷한 녹화된 코드를 가져 오겠습니다.
역시 공통된 부분만 빨간색으로 표시를 하면 다음과 같습니다.
// "안녕?"이라는 글을 본문에 적을때 녹화되는 코드
HAction.GetDefault("InsertText, HParameterSet.HInsertText.HSet);
HParameterSet.HInsertText.Text = "안녕?";
HAction.Execute("InsertText", HParameterSet.HInsertText.HSet);
// 붙여넣기를 실행할때 녹화되는 코드
HAction.GetDefault("Paste", HParameterSet.HSelectionOpt.HSet);
with (HParameterSet.HSelectionOpt)
{
}
HAction.Execute("Paste", HParameterSet.HSelectionOpt.HSet);
// 글자모양을 실행할때 녹화되는 코드
HAction.GetDefault("CharShape", HParameterSet.HCharShape.HSet);
with (HParameterSet.HCharShape)
{
FaceNameUser = "굴림체";
FontTypeUser = FontType("TTF");
FaceNameSymbol = "굴림체";
FontTypeSymbol = FontType("TTF");
FaceNameOther = "굴림체";
FontTypeOther = FontType("TTF");
FaceNameJapanese = "굴림체";
FontTypeJapanese = FontType("TTF");
FaceNameHanja = "굴림체";
FontTypeHanja = FontType("TTF");
FaceNameLatin = "굴림체";
FontTypeLatin = FontType("TTF");
FaceNameHangul = "굴림체";
FontTypeHangul = FontType("TTF");
}
HAction.Execute("CharShape", HParameterSet.HCharShape.HSet);
HAction.GetDefault(); 와 HAction.Execute(); 는 무조건 셋트로 움직입니다.
어느 하나가 결핍되면 오류를 발생시킵니다. 또한,
코드를 수정하는 단계에 이르면 다음을 주의해야합니다.
HAction.GetDefault();
HAction.GetDefault();
HAction.Execute();
HAction.Execute();
와 같이 이중구조로 사용이 불가능합니다.
HAction.GetDefault();
HAction.Execute();
와 같이 HAction.GetDefault();가 실행이 되고 HAction.Execute();실행이 끝난 뒤에 다시
HAction.GetDefault();가 올 수 있습니다.(참고문헌 한글 API)
코드스타일3) 기호 ; (세미콜론)
눈치 채셨을지 모르겠지만
코드스타일1), 코드스타일2)에서 공통된 특징이 하나 있습니다.
코드 마지막 부분에 기호 ;(세미콜론)이 붙여있습니다. ([그림1] 참고)
[세미콜론을 붙여주는 이유]
컴퓨터가 코드의 마지막이 어디인지 알리기 위함입니다.
마지막이 정해져 있다는걸 알았다면 컴퓨터가 그 이후 코드를 해석하는데 불필요한 시간 낭비를 막을 수 있습니다.
붙이지 않아도 실행이 되는 경우가 있지만, 오류로 실행이 되지 않는 경우도 있으니 꼭 붙이는 습관을 들여주세요.
다음에 글에서는 녹화된 스크립트를 직접 수정해 보도록 하겠습니다.
---------------------------------------------------------------------------------------------------------------------------
궁금한 점이 있거나 매크로 문의는 오픈카톡으로 오시면 친절히 답해드리겠습니다.
(한글단축키, 한글에 대한 오류 해결, 매크로 제작문의, 매크로 궁금한 점 문의)
오픈카톡주소
단체톡 https://open.kakao.com/o/gF5DTuZc
1:1문의 https://open.kakao.com/o/sfHk5I1c
---------------------------------------------------------------------------------------------------------------------------
!! 오타나 오류가 있다면 댓글로 알려주세요 !!
'한글매크로' 카테고리의 다른 글
(한글매크로) #4. 스크립트창에서 코드 수정하기 (0) | 2021.09.10 |
---|---|
(한글매크로) #2. 한글매크로 부가기능 (0) | 2021.09.05 |
(한글매크로) #1. 한글매크로 녹화하기 (0) | 2021.09.05 |