【问题标题】:Vba - Set transparent color or direct hex value of label backcolor?Vba - 设置标签背景色的透明颜色或直接十六进制值?
【发布时间】:2011-04-07 20:21:32
【问题描述】:

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

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

但实际上,标签背景不能直接使用十六进制值吗?

【问题讨论】:

  • 究竟什么是“标签”?一个文本框?还是图表上的标签? “格式形状 - >填充”上的“无填充”选项应该可以工作
  • 不,它看起来像是一个 Active X 控件或其他东西。问题是,在 PowePoint 中你没有书签。所以我不能以编程方式设置某个占位符的文本值,因为它没有 ID。现在,另一个标签确实有一个名称,就像 Windows 窗体一样。我猜这就是我使用的那种标签。它基本上就像 Visual Studio 中的那些。

标签: vba label hex rgb backcolor


【解决方案1】:

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

这将在幻灯片 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 来引用形状。

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

【讨论】:

    【解决方案2】:

    试试 *.BackgroundColor = -1 '透明

    【讨论】:

    • 试着解释你的答案,以便对未来的读者有用。
    猜你喜欢
    • 1970-01-01
    • 2017-01-26
    • 2015-06-23
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 2011-04-14
    • 2019-03-26
    相关资源
    最近更新 更多