표 글자처럼 취급

안녕하세요.

표를 만들때 글자처럼 취급을 해야 하는데요

특정 상황에서 글자처럼 취급이 적용되지 않아서 궁금해서 여쭤봅니다.

특정 상황은
글자처럼 취급되지 않는 표가 있는 경우

그 바로 밑에서 매크로를 실행하면
단독 실행 할때는 잘 되던 글자처럼 취급이
적용되지 않습니다.

코드입니다. ↓

function OnDocument_New() {
makeTbl(1, 10);
}

function makeTbl(row, col) {
HAction.GetDefault(“TableCreate”, HParameterSet.HTableCreation.HSet);
with (HParameterSet.HTableCreation) {
Rows = row;
Cols = col;
TableProperties.TreatAsChar = 1;
HSet.SetItem(“ShapeType”, 6);
}
HAction.Execute(“TableCreate”, HParameterSet.HTableCreation.HSet);
}

2개의 좋아요

오토메이션 코드로 표 생성시에는
TreatAsChar 파라미터가 잘 적용되지 않습니다.
어떤 값을 주든 직전 표의 “글자처럼 취급” 값을 따라갑니다.
(버그가 아니고 스펙인 것 같습니다.)

방금 생성한 표의 “글자처럼 취급” 속성을 변경하고 싶으시면
해당 표의 셀 안에 캐럿이 있거나, 표 전체가 선택된 상태에서
아래 함수를 하나 더 실행하셔야 합니다.
(파이썬 예시입니다.)

ctrl = hwp.CurSelectedCtrl or hwp.ParentCtrl
pset = hwp.CreateSet("Table")
pset.SetItem("TreatAsChar", True)  # 글자처럼 취급
ctrl.Properties = pset

시연화면은 아래와 같습니다.

녹화_2024_01_03_00_49_07_813

매번 이런 코딩은 번거로우므로 함수로 만들어 두시면 편합니다.
아래처럼요.

녹화_2024_01_03_00_57_48_531

도움이 되었길 바랍니다.
새해 복 많이 받으세요!

2개의 좋아요

ilco님 덕분에 잘 해결했습니다. (ParentCtrl 이용)

ilco님도 새해 복 많이 받으세요! (강의도 잘 듣고 있어요 ㅎ)

2개의 좋아요