1.将对象调整为目标颜色A,并将光标置于A上
2.按F8拾取颜色(颜色号自动复制到剪贴板)
3.修改红色内容为剪贴板中数值。ShapeSelected.Line.ForeColor.RGB:=0x000000
小火箭:
1.代表形状的填充格式。 形状可以有单色、渐变、纹理、图案、图片或半透明填充[FillFormat 对象 (PowerPoint) https://docs.microsoft.com/zh-cn/office/vba/api/powerpoint.fillformat
2.指定线条的虚线线型[LineFormat.DashStyle 属性 (PowerPoint) https://docs.microsoft.com/zh-cn/office/vba/api/powerpoint.lineformat.dashstyle
其他属性在上述网站亦可查询
F7::
ox:= ComObjActive("powerpoint.Application")
SlideSelected:= ox.ActiveWindow.Selection.SlideRange ;选定内容中的幻灯片范围。
for ShapeSelected in ox.ActiveWindow.Selection.ShapeRange
ShapeSelected.Line.weight:=1 ;设置线宽
msoShapeRoundedRectangle :=5
ShapeSelected.AutoShapeType :=msoShapeRoundedRectangle 设置选中对象的形状OK ;设置为圆角矩形
ShapeSelected.Line.ForeColor.RGB:=0x000000
Return
F8:: ;拾取PPT中颜色后,即可赋值给表达式使用
MouseGetPos, MouseX, MouseY
PixelGetColor, ColorIndex, %MouseX%, %MouseY%
Sleep,200
Clipboard = %ColorIndex%
;ox.ActiveWindow.Selection.ShapeRange.Fill.ForeColor.RGB :=color+0
return
出一个ppt系列也是挺好的
后边有相关的需求慢慢写吧,目前的存货撑不起一个系列。
标题不够醒目,用一个醒目的标题就知道你发的什么比如ComObjActive操作PPT之……、ComObjActive操作Excel之……
好想法
鼠标停留在桌面上任意位置,F1,将该位置像素赋于主题1的颜色,F2依次主题2 F1:: color:= GetMouseColor() oRGB := HexToRGB(color) SetThemeColor(5,oRGB) oRGB := 0 return F2:: color:= GetMouseColor() oRGB := HexToRGB(color) SetThemeColor(6,oRGB) oRGB := 0 return F3:: color:= GetMouseColor() oRGB := HexToRGB(color) SetThemeColor(7,oRGB) oRGB := 0 return F4:: color:= GetMouseColor() oRGB := HexToRGB(color) SetThemeColor(8,oRGB) oRGB := 0 return GetMouseColor(){ MouseGetPos, mouseX, mouseY CoordMode, Pixel, Screen PixelGetColor, color, %mouseX%, %mouseY%, RGB ;~ StringRight color,color,8 return color } HexToRGB(HexColor){ RR := SubStr(HexColor, 3, 2) GG := SubStr(HexColor, 5, 2) BB := SubStr(HexColor, 7, 2) oRGB16 := “0x” BB GG RR oRGB := ToBase(oRGB16,10) return oRGB } SetThemeColor(Index,oRGB){ try{ oPPT := ComObjActive(“powerpoint.Application”) oDess := oPPT.ActivePresentation.Designs loop, % oDess.Count oDess.item(A_Index).SlideMaster.Theme.ThemeColorScheme(index).RGB := oRGB } return } ToBase(n,b){ return (n < b ? "" : ToBase(n//b,b)) . ((d:=Mod(n,b)) < 10 ? d : Chr(d+55)) }
看不懂啊,大佬
感谢大佬