2017-07-28 1 views
1

J'ai essayé le code suivant, pour modifier la taille de la police de la zone de texte qui est écrit le nom dans la zone de texte 'txtboxselection'. Par exemple si le texte du TextBox 'txtboxselection' est 'TextBox1' alors il devrait changer la taille de police de TextBox1.Modifier la zone de texte écrite, propriétés (PowerPoint VBA)

Private Sub TextBox2_Change() 
Dim e_sel As TextBox 
Set e_sel = txtboxselection.Text 
e_sel.Font.Size = 11 
End Sub 

Mais, malheureusement, cela ne fonctionne pas ('Compile Error: Type discordance'). Donc, est-il possible de dire au programme que je veux changer la taille de la police TextBox écrite dans la TextBox "txtboxselection", parce que la mienne ne fonctionnait pas

+0

Vous ne savez pas, Essayez: 'Set e_sel = TextBox (txtboxselection.Text)' –

+0

N'a pas fonctionné. En gras est le problème: Set e_sel = ** TextBox ** (txtboxselection.Text) | ** EDIT **: Sub ou la fonction n'existe pas –

+2

'Me.Controls (txtboxselection.Text) .Font.Size = 11' –

Répondre

1

En supposant que votre zone de texte est un contrôle ActiveX sur une diapositive PowerPoint , vous devez interroger la collection Shapes pour obtenir le contrôle, et récupérer son OLEFormat.Object pour obtenir un objet TextBox.

Private Sub TextBox1_Change() 
Dim box1 As TextBox 
Set box1 = Me.Shapes("TextBox1").OLEFormat.Object 
MsgBox box1.Font.Size 
End Sub 

une fois que vous avez votre référence d'objet TextBox, vous pouvez faire tout ce que vous voulez avec donc, en votre cause:

Private Sub TextBox2_Change() 
Dim e_sel As TextBox 
Set e_sel = Me.Shapes(txtboxselection.Text).OLEFormat.Object 
e_sel.Font.Size = 11 
End Sub 
+0

Wow, cela a vraiment fonctionné. Je vous remercie! –