# 스타일 재지정

**URL:** <https://forum.developer.hancom.com/t/topic/2966>\
**Category:** 한글 오토메이션\
**Created:** [1월 4, 2026, 1:35오전 UTC](https://forum.developer.hancom.com/t/topic/2966 "2026-01-04T01:35:50Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Izoau](https://avatars.discourse-cdn.com/v4/letter/i/e9bcb4/32.png) [@Izoau](https://forum.developer.hancom.com/u/Izoau)\
**Post date:** [1월 4, 2026, 1:35오전 UTC](https://forum.developer.hancom.com/t/topic/2966/1 "2026-01-04T01:35:51Z")

</div>

문서에서 A라는 스타일이 적용된 문단을 찾아 다시 A라는 스타일을 적용하는 코드를

```auto
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 = 1;
	IgnoreReplaceString = 1;
	FindString = "";
	ReplaceString = "";
	ReplaceMode = 1;
	IgnoreMessage = 1;
	HanjaFromHangul = 0;
	FindJaso = 0;
	FindRegExp = 0;
	FindTextInPicture = 0;
	FindStyle = "본문";
	ReplaceStyle = "본문";
	FindType = 1;
}
HAction.Execute("AllReplace", HParameterSet.HFindReplace.HSet);

```

를 활용하여 사용하고 있습니다.

그런데, 매 문서마다 스타일 이름 (“본문”) 을 매 번 수정해서 사용해야 하는 불편함이 있어  
이를 자동화 하려 하는데 잘 안되네요

스타일 이름을 가져올 수 있는 방법은 아직 없는 건가요?

참고로, 스타일 내보내기를 하면 스타일의 개수, 각 스타일의 영문이름은 보내지는데, 그것을 활용할 수 있는 방법은 없을까요?

---

<div class="post-metadata">

**Author:** ![ygyoun](https://avatars.discourse-cdn.com/v4/letter/y/b4bc9f/32.png) [@ygyoun](https://forum.developer.hancom.com/u/ygyoun)\
**Post date:** [1월 5, 2026, 1:38오전 UTC](https://forum.developer.hancom.com/t/topic/2966/2 "2026-01-05T01:38:42Z")

</div>

안녕하세요

현재 스타일을 가져오는 방법은 없습니다.  
도움을 드리지 못해 죄송합니다. 😭

감사합니다.

---

<div class="post-metadata">

**Author:** ![Izoau](https://avatars.discourse-cdn.com/v4/letter/i/e9bcb4/32.png) [@Izoau](https://forum.developer.hancom.com/u/Izoau)\
**Post date:** [1월 5, 2026, 2:36오전 UTC](https://forum.developer.hancom.com/t/topic/2966/3 "2026-01-05T02:36:51Z")

</div>

다음과 같은 방법으로 스타일 목록 및 사용 여부를 확인하였습니다.  
function OnScriptMacro\_script24()  
{  
var A = GetPosBySet();  
HAction.Run(“SelectAll”);  
// HML 포맷으로 문서를 읽어옵니다.  
var txt = GetTextFile(“HWPML2X”, “saveblock”);  
HAction.Run(“Cancel”);

```auto
// 1. <STYLELIST Count="숫자"> 추출
var countMatch = txt.match(/<STYLELIST\s+Count="(\d+)"/i);
if (!countMatch) {
    alert("에러: STYLELIST 정보를 찾을 수 없습니다.");
    return;
}

var totalStyles = parseInt(countMatch[1]);
var resultMsg = "전체 스타일 개수: " + totalStyles + "개\n";
resultMsg += "----------------------------\n";

// 2. 0번부터 totalStyles-1번까지 루프
for (var i = 0; i < totalStyles; i++) 
{
    // <STYLE Id="i" Name="이름" ... /> 패턴 매칭
    // 정규표현식 설명: Id="i"와 Name="값"을 순서와 상관없이 찾음
    var styleDefRegex = new RegExp("<STYLE[^>]*Id=\"" + i + "\"[^>]*Name=\"([^\"]+)\"", "i");
    var styleMatch = txt.match(styleDefRegex);
    
    if (styleMatch) 
    {
        var styleName = styleMatch[1];
        
        // 3. 본문 영역에서 Style="i" 사용 여부 확인
        var useRegex = new RegExp(" Style=\"" + i + "\"", "g");
        var isUsed = (txt.search(useRegex) > -1);
        
        // 디버깅 정보 조립: [ID] 이름 : 사용여부
        resultMsg += "ID " + i + " : [" + styleName + "] " + (isUsed ? "(사용 중)" : "(미사용)") + "\n";
    }
    else
    {
        resultMsg += "ID " + i + " : 정보를 찾을 수 없음\n";
    }
}

// 결과 출력
alert(resultMsg);

SetPosBySet(A);

```

}

function alert(s)  
{  
XHwpMessageBox.String = s;  
XHwpMessageBox.Flag = 0;  
XHwpMessageBox.DoModal();  
}
