Vba - 设置标签背景色的透明色或直接十六进制值?

时间:2010-09-03 12:58:36

标签: vba label hex rgb backcolor

我想在PowerPoint演示文稿中插入标签。但是我不希望那里有任何背景,或者背景颜色与下面的颜色相同。

我发现082F68是我想要的十六进制代码。 RGB代码是:8,47,104 这种颜色应该是带蓝色的,但是当我插入它时,它会变成棕色。 我真的不想那样。我也尝试将label.backcolor设置为Color.Transparent。但这是不被承认的。 System.Drawing.Color.Transparent也不是。它只是说它需要一个对象引用。

但实际上,是否可以将直接十六进制值用于标签背景?

2 个答案:

答案 0 :(得分:2)

(超级迟到的回复,但万一其他人有这个问题)

这将在左上角的幻灯片1上创建一个标签。在我的系统上,我得到你正在谈论的蓝色背景色。

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)

您还可以将填充透明度设置为100%(填充将是透明的):

sh.Fill.Transparency = 1#

我不确定您使用的是什么“占位符”,但任何 Shape 对象都会有ID:

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

但如上所述,通过名称引用它可能更容易。 ID是一个数值,与形状索引不同,因此更难以通过ID来引用形状。

上面我以编程方式指定名称,但您也可以自己命名形状:主页 - >安排 - >选择窗格。在选择窗格中,您可以单击幻灯片上所有形状的名称进行编辑。您现在可以在代码中引用这些形状名称。

答案 1 :(得分:0)

尝试* .BackgroundColor = -1'透明