Visio 셰이프의 텍스트를 셰이프의 너비에 맞도록 줄이기위한 방법을 찾으려합니다. 그렇지 않으면 글꼴을 기본값으로 두십시오.
셰이프 너비를 초과하지 않도록 텍스트의 글꼴 크기를 변경하는 데 사용할 수있는 셰이프 시트 함수가 있습니까?
궁극적으로 VBA를 사용하여 자동으로 도형을 만들 때이 값을 할당 할 수 있기를 바란다. 그래서 텍스트의 너비를 얻는 방법이 있다면 아마도 그렇게 할 수있을 것이다.
Visio 셰이프의 텍스트를 셰이프의 너비에 맞도록 줄이기위한 방법을 찾으려합니다. 그렇지 않으면 글꼴을 기본값으로 두십시오.
셰이프 너비를 초과하지 않도록 텍스트의 글꼴 크기를 변경하는 데 사용할 수있는 셰이프 시트 함수가 있습니까?
궁극적으로 VBA를 사용하여 자동으로 도형을 만들 때이 값을 할당 할 수 있기를 바란다. 그래서 텍스트의 너비를 얻는 방법이 있다면 아마도 그렇게 할 수있을 것이다.
답변:
텍스트가 도형의 크기를 초과하면 자동화를 사용하여 텍스트 블록의 글꼴 크기를 조정할 수 있습니다. 나는 다음과 같은 작품을 발견했다.
도형 시트 (Window- & gt; Show Shapesheet)를 열고 사용자 섹션 (Insert- & gt; Section- & gt; 사용자 정의 셀)을 추가하십시오. 이 수식을 User.Row_1의 값 셀에 넣습니다.
= Min (1, Height / TEXTHEIGHT (TheText, Width)))
모양 텍스트가 변경된 후 사용자 셀의 값을 가져옵니다. C #에서 :
double scale = shape.get_CellsSRC ((short) IVisio.VisSectionIndices.visSectionUser, (짧은) IVisio.VisRowIndices.visRowUser, (짧은) IVisio.VisCellIndices.visUserValue) .ResultIU;
그런 다음 글꼴을 설정하고 TextMargins (0이 아닌 글꼴 인 경우)을 다음과 같이 설정합니다 (일반 글꼴 크기가 12이고 왼쪽 여백이 4pt라고 가정).
shape.get_CellsSRC ((short) IVisio.VisSectionIndices.visSectionCharacter, 0, (short) IVisio.VisCellIndices.visCharacterSize) .FormulaU = (scale * 12) .ToString () + "pt";
shape.getCellsSRC (short) IVisio.VisSectionIndices.visSectionObject, (short) IVisio.VisRowIndices.visRowText, (IVisio.VisCellIndices.visTxtBlkLeftMargin) .FormulaU = (scale * 4) .ToString () + "pt";