2 votes

Ajuster le texte à la forme dans Visio

Je suis en train de chercher un moyen d'obtenir le texte dans une forme Visio pour qu'il rétrécisse pour s'adapter à la largeur de la forme, sinon laisser la police par défaut.

Y a-t-il une fonction shapesheet que je peux utiliser pour changer la taille de la police du texte afin qu'elle ne dépasse pas la largeur de la forme?

En fin de compte, j'aimerais pouvoir attribuer cela lors de la construction automatique de la forme en utilisant VBA, alors s'il y a un moyen d'obtenir la largeur du texte de cette façon, peut-être que je peux le faire.

2voto

Vous pouvez redimensionner la police du bloc de texte en utilisant l'automatisation si le texte dépasse la taille de la forme. J'ai trouvé que la méthode suivante fonctionne.

Ouvrez le shapesheet de la forme (Fenêtre->Afficher le shapesheet) et ajoutez la section utilisateur (Insérer->Section->Cellules définies par l'utilisateur). Mettez cette formule dans la cellule de valeur pour User.Row_1 :

\=Min(1,Hauteur/HAUTEURTEXTE(LeTexte,Largeur)))

Après que le texte de la forme change, récupérez la valeur de la cellule utilisateur. en c# :

double échelle = shape.get_CellsSRC((short)IVisio.VisSectionIndices.visSectionUser, (short)IVisio.VisRowIndices.visRowUser, (short)IVisio.VisCellIndices.visUserValue).ResultIU;

Ensuite, définissez la police, et les marges de texte (pour celles qui ne sont pas à zéro) avec ce qui suit (en supposant que la taille de police normale est 12 et la marge gauche est de 4pt :

shape.get_CellsSRC((short)IVisio.VisSectionIndices.visSectionCharacter, 0, (short)IVisio.VisCellIndices.visCharacterSize).FormulaU = (échelle*12).ToString() + "pt";

shape.get_CellsSRC((short)IVisio.VisSectionIndices.visSectionObject, (short)IVisio.VisRowIndices.visRowText, (short)IVisio.VisCellIndices.visTxtBlkLeftMargin).FormulaU = (échelle * 4).ToString() + "pt";

1voto

Dalroth Points 2468

Je ne connais pas de moyen de dimensionner le texte par rapport à la forme à moins que vous ne changiez la taille de la police, mais il existe des moyens de dimensionner les formes en fonction du texte au lieu de l'inverse.

0voto

Autre que de changer la taille de la police elle-même, les 2 autres contrôles que j'ai trouvés pour faire rentrer le texte à l'intérieur d'une forme sont les suivants :

Tout d'abord, cliquez sur la forme avec le texte et sélectionnez le bouton Texte principal dans la barre des tâches (celui qui affiche l'ensemble complet des options de texte).

Sélectionnez l'onglet Caractère et changez l'échelle en % pour que le texte soit assez petit mais lisible pour vous. Ensuite, cliquez sur l'onglet Paragraphe et modifiez les valeurs d'Indentation ou d'Espacement pour faire en sorte que le texte rentre. J'ai trouvé que le Pourcentage de ligne est le plus efficace. Remarque : Pour les changements ci-dessus, utilisez le bouton Appliquer pour voir à quoi ressemblera la valeur réellement, avant de cliquer sur le bouton OK pour fermer le dialogue du menu Texte.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X