"문자열을 표로" 매크로 질문입니다.

안녕하세요.

아래 코드는 탭으로 구분된 문자열을 표로 만드는 매크로 자동 기록 코드입니다.

function OnScriptMacro_script2()
{
	HAction.GetDefault("TableStringToTable", HParameterSet.HTableStrToTbl.HSet);
	with (HParameterSet.HTableStrToTbl)
	{
		TableCreation.Rows = 2;
		TableCreation.Cols = 3;
		TableCreation.WidthType = 0;
		TableCreation.HeightType = 0;
		TableCreation.WidthValue = MiliToHwpUnit(0.0);
		TableCreation.HeightValue = MiliToHwpUnit(0.0);
		TableCreation.CreateItemArray("ColWidth", 3);
		TableCreation.ColWidth.Item(0) = MiliToHwpUnit(52.4);
		TableCreation.ColWidth.Item(1) = MiliToHwpUnit(52.4);
		TableCreation.ColWidth.Item(2) = MiliToHwpUnit(52.4);
		TableCreation.CreateItemArray("RowHeight", 2);
		TableCreation.RowHeight.Item(0) = MiliToHwpUnit(0.0);
		TableCreation.RowHeight.Item(1) = MiliToHwpUnit(0.0);
		TableCreation.TableProperties.CellMarginLeft = MiliToHwpUnit(1.8);
		TableCreation.TableProperties.CellMarginRight = MiliToHwpUnit(1.8);
		TableCreation.TableProperties.CellMarginTop = MiliToHwpUnit(0.5);
		TableCreation.TableProperties.CellMarginBottom = MiliToHwpUnit(0.5);
		TableCreation.TableProperties.HorzRelTo = HorzRel("Column");
		TableCreation.TableProperties.VertRelTo = VertRel("Para");
		TableCreation.TableProperties.FlowWithText = 1;
		TableCreation.TableProperties.TextWrap = TextWrapType("TopAndBottom");
		TableCreation.TableProperties.WidthRelTo = WidthRel("Absolute");
		TableCreation.TableProperties.HeightRelTo = HeightRel("Absolute");
		TableCreation.TableProperties.AllowOverlap = 0;
		TableCreation.TableProperties.TreatAsChar = 0;
		TableCreation.TableProperties.VertAlign = VAlign("Top");
		TableCreation.TableProperties.HorzAlign = HAlign("Justify");
		TableCreation.TableProperties.Width = 47624;
		TableCreation.TableProperties.Height = 0;
		TableCreation.TableProperties.TextFlow = TextFlowType("BothSides");
		TableCreation.TableProperties.OutsideMarginLeft = MiliToHwpUnit(1.0);
		TableCreation.TableProperties.OutsideMarginRight = MiliToHwpUnit(1.0);
		TableCreation.TableProperties.OutsideMarginTop = MiliToHwpUnit(1.0);
		TableCreation.TableProperties.OutsideMarginBottom = MiliToHwpUnit(1.0);
		TableCreation.TableProperties.HoldAnchorObj = 0;
		UserDefine = "";
		DelimiterEtc = "";
	}
	HAction.Execute("TableStringToTable", HParameterSet.HTableStrToTbl.HSet);
}

위 코드에서

TableCreation.TableProperties.TreatAsChar = 1;

로 변경 후 실행하면 표의 속성에서 “글자처럼 취급”이 선택되어야 할 것 같은데

그렇지 않습니다.

확인 부탁 드립니다.

질문

안녕하세요.

"문자열을 표"로 기능(TableStringToTable)을 실행할 때 TableCreation 속성이 정상적으로 적용이 안되는 것 같습니다.
해당 증상은 담당 부서로 보고해서 검토하겠습니다.

그리고 질문하신 동작은 아래와 같이 구현할 수 있을 것 같으니 참고 부탁드립니다. :head_shaking_vertically:

function OnScriptMacro_script2()
{
	HAction.GetDefault("TableStringToTable", HParameterSet.HTableStrToTbl.HSet);
	with (HParameterSet.HTableStrToTbl)
	{
		TableCreation.Rows = 2;
		TableCreation.Cols = 3;
		TableCreation.WidthType = 0;
		TableCreation.HeightType = 0;
		TableCreation.WidthValue = MiliToHwpUnit(0.0);
		TableCreation.HeightValue = MiliToHwpUnit(0.0);
		TableCreation.CreateItemArray("ColWidth", 3);
		TableCreation.ColWidth.Item(0) = MiliToHwpUnit(52.4);
		TableCreation.ColWidth.Item(1) = MiliToHwpUnit(52.4);
		TableCreation.ColWidth.Item(2) = MiliToHwpUnit(52.4);
		TableCreation.CreateItemArray("RowHeight", 2);
		TableCreation.RowHeight.Item(0) = MiliToHwpUnit(0.0);
		TableCreation.RowHeight.Item(1) = MiliToHwpUnit(0.0);
		TableCreation.TableProperties.CellMarginLeft = MiliToHwpUnit(1.8);
		TableCreation.TableProperties.CellMarginRight = MiliToHwpUnit(1.8);
		TableCreation.TableProperties.CellMarginTop = MiliToHwpUnit(0.5);
		TableCreation.TableProperties.CellMarginBottom = MiliToHwpUnit(0.5);
		TableCreation.TableProperties.HorzRelTo = HorzRel("Column");
		TableCreation.TableProperties.VertRelTo = VertRel("Para");
		TableCreation.TableProperties.FlowWithText = 1;
		TableCreation.TableProperties.TextWrap = TextWrapType("TopAndBottom");
		TableCreation.TableProperties.WidthRelTo = WidthRel("Absolute");
		TableCreation.TableProperties.HeightRelTo = HeightRel("Absolute");
		TableCreation.TableProperties.AllowOverlap = 0;
		TableCreation.TableProperties.TreatAsChar = 0;
		TableCreation.TableProperties.VertAlign = VAlign("Top");
		TableCreation.TableProperties.HorzAlign = HAlign("Justify");
		TableCreation.TableProperties.Width = 47624;
		TableCreation.TableProperties.Height = 0;
		TableCreation.TableProperties.TextFlow = TextFlowType("BothSides");
		TableCreation.TableProperties.OutsideMarginLeft = MiliToHwpUnit(1.0);
		TableCreation.TableProperties.OutsideMarginRight = MiliToHwpUnit(1.0);
		TableCreation.TableProperties.OutsideMarginTop = MiliToHwpUnit(1.0);
		TableCreation.TableProperties.OutsideMarginBottom = MiliToHwpUnit(1.0);
		TableCreation.TableProperties.HoldAnchorObj = 0;
		UserDefine = "";
		DelimiterEtc = "";
	}
	HAction.Execute("TableStringToTable", HParameterSet.HTableStrToTbl.HSet);

	FindCtrl();

	HAction.GetDefault("TablePropertyDialog", HParameterSet.HShapeObject.HSet);
	with (HParameterSet.HShapeObject)
	{
		TreatAsChar = 1;
	}
	HAction.Execute("TablePropertyDialog", HParameterSet.HShapeObject.HSet);
}

감사합니다.

1개의 좋아요

표 속성의 TreatAsChar 속성이 TableCreation에도 있길래

시험 삼아 적용해 본 것이었습니다.

확인해 주셔서 감사합니다.

1개의 좋아요