2010-09-03 38 views
0

Je souhaite insérer une étiquette dans une présentation PowerPoint. Mais je ne veux pas d'arrière-plan là-bas, ou, la couleur de fond est la même que ce qui est en dessous.Vba - Définir la couleur transparente ou la valeur hexadécimale directe de l'étiquette backcolor?

J'ai trouvé que 082F68 est le code hexadécimal que je veux. Le code RGB est: 8, 47, 104 Cette couleur est censée être bleutée, mais quand je l'insère, elle devient brune. Je ne veux vraiment pas ça. J'ai également essayé de mettre label.backcolor à Color.Transparent. Mais ce n'est pas reconnu. System.Drawing.Color.Transparent n'est pas non plus. Il dit juste qu'il a besoin d'une référence d'objet.

Mais, vraiment, n'est-il pas possible d'utiliser des valeurs hexadécimales directes pour les arrière-plans d'étiquettes?

+0

Qu'est-ce qu'un "label"? Une boîte de texte? Ou une étiquette sur un graphique? L'option "Pas de remplissage" sur "Format Shape -> Fill" devrait fonctionner –

+0

Non, il semble que ce soit un contrôle ActiveX ou quelque chose comme ça. La chose est, dans PowePoint vous n'avez pas de signets. Je ne peux donc pas programmer la valeur de texte d'un espace réservé donné, car il n'a pas d'ID. Maintenant, une étiquette sur l'autre a un nom, tout comme Windows Forms. C'est le genre d'étiquette que j'utilise, je suppose. C'est comme dans Visual Studio. –

Répondre

1

(réponse super fin, mais dans d'autres cas ont ce problème)

Cela va créer une étiquette sur la diapositive 1 dans le coin supérieur gauche. Sur mon système, j'obtiens la couleur de fond bleuâtre dont vous parlez.

ActivePresentation.Slides(1).Shapes.AddLabel(Orientation:=msoTextOrientationHorizontal, _ 
    Left:=0, Top:=0, Width:=50, Height:=50).name = "TestLabel" 

Dim sh As Shape 
Set sh = ActivePresentation.Slides(1).Shapes("TestLabel") 
sh.TextFrame.TextRange.Text = "Hello"   
sh.Fill.BackColor.RGB = RGB(8, 47, 104) 

Vous pouvez également définir la transparence de remplissage à 100% (remblai sera transparent):

sh.Fill.Transparency = 1# 

Je ne suis pas sûr de ce que vous utilisez comme un « espace réservé », mais toute forme objet aura un ID:

MsgBox "Label ID = " + CStr(sh.Id) 

mais il est probablement plus facile de s'y référer par son nom comme je le fais ci-dessus. L'ID est une valeur numérique et n'est pas identique à l'index de forme, ce qui rend plus difficile la référence de la forme par son ID. Ci-dessus, j'attribue par programme le nom, mais vous pouvez aussi nommer la forme vous-même: Accueil -> Réorganiser -> Volet de sélection. Dans le volet de sélection, vous pouvez cliquer sur les noms de toutes les formes de la diapositive pour les modifier. Vous pouvez maintenant vous référer à ces noms de formes dans le code.

0

Essayez * .BackgroundColor = -1 'Transparent

+0

Essayez d'expliquer votre réponse afin qu'elle soit utile aux futurs lecteurs. – Newd