표 - 글자처럼 취급이 안됩니다.

안녕하세요~

표가 글자처럼 취급 안되어 있을때 고치기 해서 ‘글자처럼 취급’ 체크해서 사용하잖아요
근데 그냥 일반적으로 편집하면 잘 되는데
스크립트로 하면 안되는데 왜 그런지 모르겠어요
스크립트 매크로를 해서 스크립트를 실행해도 안되네요

아래한글 스크립트는 이렇게 나오는데요

function OnScriptMacro_글자처럼취급()
{
FindCtrl();
HAction.GetDefault(“CellBorderFill”, HParameterSet.HCellBorderFill.HSet);
with (HParameterSet.HCellBorderFill)
{
HSet.SetItem(“ApplyTo”, 1);
}
HAction.Execute(“CellBorderFill”, HParameterSet.HCellBorderFill.HSet);
HAction.GetDefault(“TablePropertyDialog”, HParameterSet.HShapeObject.HSet);
with (HParameterSet.HShapeObject)
{
HorzOffset = MiliToHwpUnit(0.0);
HorzRelTo = HorzRel(“Para”);
VertOffset = MiliToHwpUnit(0.0);
TreatAsChar = 1;
HSet.SetItem(“ShapeType”, 6);
}
HAction.Execute(“TablePropertyDialog”, HParameterSet.HShapeObject.HSet);
}

글자처럼 취급이 안되네요…
아래는 c# 코드인데요…

// 고치기 (글자처럼 취급)
private void LikeText(HwpObject hwp)
{
hwp.FindCtrl();
hwp.HAction.GetDefault(“CellBorderFill”, hwp.HParameterSet.HCellBorderFill.HSet);
hwp.HParameterSet.HCellBorderFill.HSet.SetItem(“ApplyTo”, 1);
hwp.HAction.Execute(“CellBorderFill”, hwp.HParameterSet.HCellBorderFill.HSet);
hwp.HAction.GetDefault(“TablePropertyDialog”, hwp.HParameterSet.HShapeObject.HSet);
hwp.HParameterSet.HShapeObject.HorzOffset = hwp.MiliToHwpUnit(0.0);
hwp.HParameterSet.HShapeObject.HSet.HorzRelTo = hwp.HorzRel(“Para”);
hwp.HParameterSet.HShapeObject.HSet.VertOffset = hwp.MiliToHwpUnit(0.0);
hwp.HParameterSet.HShapeObject.HSet.TreatAsChar = 1;
hwp.HParameterSet.HShapeObject.HSet.SetItem(“ShapeType”, 6);
hwp.HAction.Execute(“TablePropertyDialog”, hwp.HParameterSet.HShapeObject.HSet);
}

마지막 줄에서 ‘서버에서 예외 오류가 발생했습니다.’ 라고 뜨네요… 뭐가 문제일까요? ㅠㅠ

안녕하세요, ^^
음 자바스크립트 코드긴 하지만 TreatAsChar 만 옵션을 줘도 잘 동작을 하고 있습니다 ㅠ…!

	var act = myHwpObj.CreateAction("TablePropertyDialog");
	var set = myHwpObj.CreateSet("ShapeObject");
	set.SetItem("TreatAsChar", 1);
	act.Execute(set);

혹시 의심되는 부분은 저 api를 호출하기전 테이블이 선택되지 않았을 경우도 있을것 같습니다.

TablePropertyDialog의 경우 현재 선택된 컨트롤이 표일 경우 해당 표에 대한 속성을 바꿀수 있는 API 입니다.

GetDefualt를 호출시 현재 선택된 테이블의 속성을 가져오게 되는데 선택되지 않았을 경우 NULL로 채워질수 있으며 그럴 경우 오류가 발생할수도 있을것 같습니다.

감사합니다 ^^

알려주신대로 했는데
‘서버에서 예외 오류가 발생했습니다.’ 라고 뜨네요.
c# 이라 그런지 모르겠는데…

여기 포럼에서 다른 게시물 보다가 해결된거 같네요

var act = hwp.CreateAction(“TablePropertyDialog”);
var set = act.CreateSet();
var pset = set.CreateItemSet(“Table”, “Table”); ← 필요없음!!(불필요한 값)
act.GetDefault(set);
set.SetItem(“TreatAsChar”, 1);
act.Execute(set);
hwp.Run(“Cancel”); // 선택된 표 선택 해제

이렇게 하니까 되네요 ^^';

감사합니다. ^^;

(한줄이 없어도 되는 내용이 있었네요)

1개의 좋아요