특정 문자열을 찾아서 표로 만드는 작업을 매크로로 돌리면 될 때도 있고 몇 번 되다 말거나 아예 안 될 때도 있습니다. 어느 지점에서 다운되는지 알고 싶습니다. 간략한 테스트 버전입니다.
아래 문자열을 복사하여 클립보드에 넣고 다음 매크로를 돌려보면 다운되는 현상이 생깁니다. 이유를 알 수 있을까요? (2010, 2024 버전에서 테스트 해봄)
1&2&3&4&5&6&7&8&9&10
11&12&13&14&15&16&17&18&19&20
21&22&23&24&25&26&27&28&29&30
function OnScriptMacro_문자열2표()
{
var cnt = 10;
for (var i = 0; i < cnt; i++) {
HAction.Run("Paste");
HAction.Run("MoveSelPrevParaBegin");
HAction.Run("MoveSelPrevParaBegin");
HAction.Run("MoveSelPrevParaBegin");
HAction.GetDefault("TableStringToTable", HParameterSet.HTableStrToTbl.HSet);
with (HParameterSet.HTableStrToTbl)
{
TableCreation.Rows = 3;
TableCreation.Cols = 10;
TableCreation.WidthType = 0;
TableCreation.HeightType = 0;
TableCreation.WidthValue = MiliToHwpUnit(148.0);
TableCreation.HeightValue = MiliToHwpUnit(13.6);
TableCreation.CreateItemArray("ColWidth", 10);
TableCreation.ColWidth.Item(0) = MiliToHwpUnit(11.2);
TableCreation.ColWidth.Item(1) = MiliToHwpUnit(11.2);
TableCreation.ColWidth.Item(2) = MiliToHwpUnit(11.2);
TableCreation.ColWidth.Item(3) = MiliToHwpUnit(11.2);
TableCreation.ColWidth.Item(4) = MiliToHwpUnit(11.2);
TableCreation.ColWidth.Item(5) = MiliToHwpUnit(11.2);
TableCreation.ColWidth.Item(6) = MiliToHwpUnit(11.2);
TableCreation.ColWidth.Item(7) = MiliToHwpUnit(11.2);
TableCreation.ColWidth.Item(8) = MiliToHwpUnit(11.2);
TableCreation.ColWidth.Item(9) = MiliToHwpUnit(11.2);
TableCreation.CreateItemArray("RowHeight", 3);
TableCreation.RowHeight.Item(0) = MiliToHwpUnit(0.0);
TableCreation.RowHeight.Item(1) = MiliToHwpUnit(0.0);
TableCreation.RowHeight.Item(2) = 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 = 41956;
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;
AutoOrDefine = 1;
DelimiterType = Delimiter("UserDefine");
UserDefine = "&";
DelimiterEtc = "";
}
HAction.Execute("TableStringToTable", HParameterSet.HTableStrToTbl.HSet);
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)
{
HorzRelTo = HorzRel("Para");
TreatAsChar = 1;
HSet.SetItem("ShapeType", 6);
}
HAction.Execute("TablePropertyDialog", HParameterSet.HShapeObject.HSet);
HAction.Run("Cancel");
HAction.Run("MoveLineEnd");
HAction.Run("BreakPara");
alert(i);
}
}
function alert(s) {
XHwpMessageBox.String =s;
XHwpMessageBox.Flag = 0;
XHwpMessageBox.DoModal();
}
이 범주에서는 한글 오토메이션에 대한 다른 사용자의 기술 지원을 제공받을 수 있습니다.