web-dev-qa-db-fra.com

Comment obtenir le symbole carré (²) à afficher dans une chaîne

J'essaie d'obtenir ² à afficher dans une chaîne. Par exemple, ma sortie devrait être dans une zone de texte ActiveX et devrait lire R² = 50.

J'ai essayé les deux déclarations suivantes: 

Selection.Characters.Text = "R&ChrW(&HB2)&" = " & variable

mais ceci affiche un 0 comme résultat dans la zone de texte. Et ça:

Selection.Characters.Text = "R² = " & variable

affiche également un 0.

4
aconnelly

Vous ne savez pas à quel type de zone de texte vous vous référez. Cependant, je ne suis pas sûr que vous puissiez le faire dans une zone de texte d'un formulaire utilisateur.

Vous pouvez cependant créer une zone de texte sur une feuille.

Sheets("Sheet1").Shapes("TextBox 1").TextFrame2.TextRange.Text = "R2=" & variable
Sheets("Sheet1").Shapes("TextBox 1").TextFrame2.TextRange.Characters(2, 1).Font.Superscript = msoTrue

Et même chose pour une cellule Excel

Sheets("Sheet1").Range("A1").Characters(2, 1).Font.Superscript = True

Si ce n'est pas ce que vous voulez, vous devrez fournir plus d'informations dans votre question.

EDIT: posté ceci après le commentaire désolé

3
Rory

Pas besoin d'être trop compliqué. Si tout ce dont vous avez besoin est ², utilisez la représentation unicode.

http://en.wikipedia.org/wiki/Unicode_subscripts_and_superscripts

(C'est ainsi que je suppose que vous avez le ² à apparaître dans votre question.)

1
Brad

Je crée des équations avec des nombres aléatoires dans VBA et pour x carré mis dans x ^ 2.

Je lis chaque texte carré (ou zone de texte) dans une chaîne.

Je lis ensuite chaque caractère de la chaîne et note l’emplacement des ^ ("chapeaux") dans chacun.

Disons que les chapeaux étaient aux positions 4, 8 et 12.

Je coupe ensuite le premier chapeau - la position du personnage à exposer est maintenant de 4, celle des autres chapeaux est maintenant de 7 et 11 . à 7 et le chapeau a été déplacé à 10 . Je coupe le dernier chapeau .. le caractère en exposant est maintenant la position 10.

Je sélectionne maintenant chaque caractère à tour de rôle et change la police en exposant.

Ainsi, je peux remplir une feuille de calcul avec de l’algèbre à l’aide de ^, puis appeler une routine pour la ranger.

Pour les grandes puissances comme x aux 23, je construis x ^ 2 ^ 3 et la routine ci-dessus le fait.

0
Jim Beckwith