Vba 如何根据特定的颜色代码自动测量PPT中的线条

Vba 如何根据特定的颜色代码自动测量PPT中的线条,vba,powerpoint,Vba,Powerpoint,我是VBA编程新手,这是我第一次为PPT编写VBA代码。我有一些使用VBA Excel的经验 所以我的问题是,我在工作中有一个重复的任务,在PPT演示中测量自选图形线。通过测量,我的意思是获得线的高度和宽度(以英寸为单位),并乘以我将提供的特定转换系数 以下是我希望VBA执行的操作的概要: 1.在整个PPT演示文稿中查找所有“深蓝色”行。我可能需要指定颜色的RGB值。 2.找到每行的宽度和高度,乘以我将输入的数字,然后输出最终的宽度和高度。 3.在“深蓝色”线附近,绘制一个文本框,并对最终的宽度

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

所以我的问题是,我在工作中有一个重复的任务,在PPT演示中测量自选图形线。通过测量,我的意思是获得线的高度和宽度(以英寸为单位),并乘以我将提供的特定转换系数

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

所以本质上,我想要的是用转换后的宽度和高度注释我画的深蓝色线条。我将通过用户输入对话框提供转换系数

有什么建议的功能或代码开始吗?我会尽力用谷歌搜索剩下的


非常感谢!:)

这段代码需要一些调试,但它可以让您了解可能需要什么。您可能需要检查p的数据类型,并记录一个添加文本框的宏,以获得正确的linr。对于旧版本的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
将h尺寸设为形状
p=输入框(“输入数字”,50,50)
对于每个h作为activewindow.selection.sliderange.shapes
c=h.Line.ForeColor.RGB
redco=c模256
格林科=c\256模256
blueco=c\65536 Mod 256

如果你的问题现在太宽泛了,那只是一个项目规范。拿一个你不知道怎么做的部分,尝试一下,直到你卡住为止,然后用一些代码发回,并解释你遇到的问题。这类事情在这里更容易吸引人们的关注。谢谢@Giles s。我会在调查完后再给你回复。谢谢