如何根据某些颜色代码自动测量PPT中的线

时间:2018-06-25 02:11:40

标签: vba powerpoint powerpoint-vba

我是VBA编程的新手,这是我第一次为PPT编写VBA代码。我对VBA Excel有一些经验。

所以我的问题是我有一个重复的任务,就是在工作中测量PPT演示文稿中的自动整形线。通过测量,我的意思是获取线条的高度和宽度(以英寸为单位),然后乘以我将提供的某个转换系数。

以下是我希望VBA要做的事情的概述:  1.在整个PPT演示文稿中找到所有“深蓝色”行。我可能需要指定颜色的RGB值。  2.找到每行的宽度和高度,乘以我要输入的数字,然后输出最终的宽度和高度。  3.在“深蓝色”线附近,绘制一个文本框并编码最终的宽度和高度。宽度的字体颜色为洋红色,高度的字体颜色为海军蓝色。

所以从本质上讲,我想用转换后的宽度和高度注释我绘制的深蓝色线条。我将通过用户输入对话框提供转换因子。

任何建议的功能或代码开头吗?我会尽力用谷歌搜索其余的内容。

非常感谢! :)

1 个答案:

答案 0 :(得分:0)

此代码需要进行一些调试,但是可以使您了解可能需要的内容。您可能需要检查p的数据类型,并记录添加文本框的宏以使该线性正确。对于较旧版本的Powerpoint,变量c的定义不同。然后将“ c”分为红色绿色和蓝色,深蓝色对应于较低的红色和绿色值,而较高的蓝色对应于红色和绿色。我没有为文本框中的文本涂色。

Dim h as shape
p=inputbox("Enter number",50,50)
for each h as activewindow.selection.sliderange.shapes
c = h.Line.ForeColor.RGB
redco = c Mod 256
greenco = c \ 256 Mod 256
blueco = c \ 65536 Mod 256
if redco<255/3 and greenco<255/3 and blueco>255/2 then
activewindow.selection.sliderange.shapes.Addtextbox("Arial",12,"Line Width=" & h.line.weight & "  Shape/line height=" & p * h.height & "    Shape/line width="  & p * h.width, h.left-50, h.top-50,80,80).select
End if
Next