您当前的位置:首页 > 电脑百科 > 软件技术 > office

巧妙解决PowerPoint放映时ActiveX控件背景透明的问题

时间:2019-11-22 13:40:03  来源:  作者:

大家好,今天我准备给大家分享一个关于在PowerPoint放映时ActiveX控件背景透明的问题,也许很多朋友很说,这有何难?设置其属性不就得了。比如可以通过下面常规的方法进行设置。

方法一:通过属性窗口设置

巧妙解决PowerPoint放映时ActiveX控件背景透明的问题

图1 通过属性窗口设置ActiveX控件背景透明

方法二:通过后台代码的形式

巧妙解决PowerPoint放映时ActiveX控件背景透明的问题

图2 通过后台代码形式设置ActiveX控件背景透明

上面的操作,从道理上讲是没错的,但是我指的是谁PPT放映时,是否能够绝对保证根据ActiveX控件背景之前设置的透明属性呈现ActiveX控件背景透明效果呢?其实,不然。根据我的尝试,虽然可以事前对ActiveX控件背景进行透明属性设置,但往往放映时,这个ActiveX控件背景依然存在。

怎么办呢?根据我个人的探索尝试,可以借助动态获取ActiveX控件所在的幻灯片背景色,让这个背景色去填充ActiveX控件背景的形式,从“效果”上达到ActiveX控件背景透明的效果。

下面,我们就来讲讲如何实现吧!

一、在PPT中插入几个ActiveX控件的界面布局

巧妙解决PowerPoint放映时ActiveX控件背景透明的问题

图3 PPT中插入的ActiveX控件

二、从VBA后台实现ActiveX控件背景透明的功能代码

模块1中的代码:

Public Control_Original_BackColor_Value 'Control_Original_BackColor_Value--控件的原始背景色

Public Control_Original_ForeColor_Value 'Control_Original_ForeColor_Value_Value--控件的原始前景色

Sub OnSlideShowPageChange() '演示文档放映时即刻触发的事件

'如果当前播放的演示文档的幻灯片显示窗口的预览下,当前的显示定位为第一张幻灯片时,做一次初始化试题工作(这样就避免了每张幻灯 _

片跳变都要执行无谓的浪费资源式的初始化工作)

Set_ForeColor_Value = ActivePresentation.SlideMaster.Shapes(1).Fill.ForeColor.RGB '控件文字即将被设置的颜色为母版文字颜色

If ActivePresentation.SlideShowWindow.View.CurrentShowPosition = 1 Then

Dim ctr_single As Shape 'ctr_single为ActiveX控件(特别注意的是:PowerPoint幻灯片上面的控件皆作为图形的形式访问,要访问这 _

些“图形”式的ActiveX控件的属性必须采用“图形对象.OLEFormat.Object.属性”的形式进行)

Set ctr = Slide1.Shapes(1)

Control_Original_BackColor_Value = ctr.OLEFormat.Object.BackColor '存储原始背景色

Control_Original_ForeColor_Value = ctr.OLEFormat.Object.ForeColor '存储原始前景色

ControlType_Arr = Array("Label", "OptionButton", "CheckBox")

ControlName_Arr = Array("标签", "单选钮", "复选框")

c = Slide1.Background.Fill.ForeColor.RGB '提取当前幻灯片的背景色,存入临时变量c中

For i = 1 To Slide1.Shapes.Count '由Slide1.Shapes.Count统计图形的形式简洁统计出多少个控件

Set ctr = Slide1.Shapes(i)

tn = TypeName(ctr.OLEFormat.Object)

p = Pos_In_A_Array(tn, ControlType_Arr)

If p <> -1 Then

Control_Prompt_Str = "第" & i & "个ActiveX控件“" & ControlName_Arr(p) & "”,类型[" & tn & "]" & Chr(10) & "背景色将被设为与所在幻灯片颜色同色(即控件背景色形式上的“透明”效果)"

MsgBox Control_Prompt_Str, vbInformation, "设置提示"

ctr.OLEFormat.Object.BackColor = c '设置控件的背景色为当前幻灯片的背景色(即形成表面上的“背景透明”效果)

ctr.OLEFormat.Object.ForeColor = Set_ForeColor_Value '设置控件的文字颜色自适应为幻灯片母版文字颜色

End If

Next

End If

End Sub

Sub OnSlideShowTerminate() '幻灯片终止放映后触发恢复控件原有颜色的效果

Dim ctr_single As Shape 'ctr_single为ActiveX控件(特别注意的是:PowerPoint幻灯片上面的控件皆作为图形的形式访问,要访问这 _

些“图形”式的ActiveX控件的属性必须采用“图形对象.OLEFormat.Object.属性”的形式进行)

For i = 1 To Slide1.Shapes.Count

Set ctr = Slide1.Shapes(i)

ctr.OLEFormat.Object.BackColor = Control_Original_BackColor_Value

ctr.OLEFormat.Object.ForeColor = Control_Original_ForeColor_Value

Next

End Sub

Function Pos_In_A_Array(Type_Name, ControlType_Arr) As Variant '定位给定的类型名字在数组中选找到的位置,如果-1表示不存在该位置

For i = 0 To UBound(ControlType_Arr)

If Type_Name = ControlType_Arr(i) Then

Pos_In_A_Array = i

Exit For

End If

If i > UBound(ControlType_Arr) Then

Pos_In_A_Array = -1

End If

Next

End Function

三、测试实现ActiveX控件背景透明“效果”的展示

按<F5>键放映,可以看到如下效果

巧妙解决PowerPoint放映时ActiveX控件背景透明的问题

图4 单选钮控件背景设置显示提示


巧妙解决PowerPoint放映时ActiveX控件背景透明的问题

图5 点击<确定>后的单选钮控件背景透明展示及复选框控件背景设置显示提示


巧妙解决PowerPoint放映时ActiveX控件背景透明的问题

图6 点击<确定>后的复选框控件背景透明展示及标签控件背景设置显示提示


巧妙解决PowerPoint放映时ActiveX控件背景透明的问题

图7 点击<确定>后的标签控件背景透明展示


巧妙解决PowerPoint放映时ActiveX控件背景透明的问题

图8 按<Esc>结束演示文档放映后,单选钮、复选框、标签控件背景恢复原色

四、技术小结

(一)我们充分运用了获取所在幻灯片的背景色的方式。如下代码截图

巧妙解决PowerPoint放映时ActiveX控件背景透明的问题

图9 获取当前控件所在幻灯片的背景色

(二)同时,立即用该背景色填充ActiveX控件背景的形式实现其背景在“效果”上透明的目的。如下代码截图

巧妙解决PowerPoint放映时ActiveX控件背景透明的问题

图10 用幻灯片背景色填充控件背景色

好了,我们的分析就到这里,谢谢大家的关注(头条号:跟我学office高级办公)、推广和点评哦,更感谢大家持续关注我后期退出的头条原创作品!



Tags:PowerPoint   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
大家好,今天我准备给大家分享一个关于在PowerPoint放映时ActiveX控件背景透明的问题,也许很多朋友很说,这有何难?设置其属性不就得了。比如可以通过下面常规的方法进行设置。方...【详细内容】
2019-11-22  Tags: PowerPoint  点击:(392)  评论:(0)  加入收藏
▌简易百科推荐
大家好, 前面我们讲过利用常规的方法,制作二级下拉列表辅助表。 今天我们就来介绍一下,Dax 度量值(Power Pivot)和 Power Query 的 M 函数做法,主要带大家拓展思路。 如下图,我们现...【详细内容】
2021-12-28  秋叶Excel    Tags:Excel   点击:(1)  评论:(0)  加入收藏
Excel常用电子表格公式大全   一、Excel基本公式   1、查找重复内容公式:=IF(COUNTIF(A:A,A2)>1,"重复","")。   2、用出生年月来计算年龄公式:=TRUNC((DAYS360(H6,"200...【详细内容】
2021-12-21  楠方儿i    Tags:Excel   点击:(11)  评论:(0)  加入收藏
最近这段时间,我们三易生活收到了一些来自读者朋友的求助,在他们选购电脑时发现,有的设备出厂预装了“Microsoft 365”,而另一些则预装的是“Office 2021”。对于这两款同为微软...【详细内容】
2021-12-14  三易生活    Tags:Office   点击:(27)  评论:(0)  加入收藏
我们在做问卷调差或者填写一些资料表的时候,会遇到一些word文档中有小方框【□】,需要在里面打钩【&radic;】,那么是如何操作呢,今天和大家分享一下。方法一1,打开我们需要操作...【详细内容】
2021-11-26  小七哆来咪发唆    Tags:word   点击:(36)  评论:(0)  加入收藏
试想一下,用 Excel 管理项目的时候,会有很严格的日期安排,而且项目中的各细目经常是并行作业的,这就意味着日期不一定是排序的 。 那么事项太多如何更好管理,而不至于遗忘关键节...【详细内容】
2021-11-16  Excel学习世界    Tags:Excel   点击:(23)  评论:(0)  加入收藏
与大家分享一下有关制作身份证电子版时四周圆角处理的具体方法。方法/步骤首先,我们利用WPS打开相应的身份证扫描件,选中图片,点击“裁剪图片”按钮。 此时将显示“裁剪方式”...【详细内容】
2021-11-09  数字传媒微课堂    Tags:身份证   点击:(196)  评论:(0)  加入收藏
WPS是我们的常用办公软件之一,很多人在使用WPS打印功能的时候,经常会遇到多种多样的打印小问题,今天就为大家简单讲解下打印面板的各个小功能的作用。打印文档方法: 在左上角“W...【详细内容】
2021-11-02    21世纪教育网  Tags:WPS   点击:(31)  评论:(0)  加入收藏
前言:说起办公,就会想到三大办公软件,Word、Excel、PPT。这些软件的使用是有技巧的,学会使用技巧工作效率就会提高,加班自然就能避免。 今天就来分享其中之一:Word办公的7个小技巧...【详细内容】
2021-11-02  小杰好厉害呀    Tags:Word   点击:(52)  评论:(0)  加入收藏
我们使用 Word 的时候,页面上通常会有一些默认的符号,平时大家司空见惯了,可能没有多加留意,更不知道如何去除这些符号。 今天教大家两个 Word 技巧,将 Word 中默认的一些标记符...【详细内容】
2021-11-01  Excel学习世界    Tags:Word   点击:(50)  评论:(0)  加入收藏
经常用 Excel 的表哥表姐们,想必都知道「下拉菜单」这个神器,鼠标点点点,就能轻轻录入数据:▲ 一级下拉菜单 它的制作方法也很简单,用【数据验证】功能可以直接实现! 有小伙伴表示...【详细内容】
2021-10-27  秋叶Excel    Tags:Excel   点击:(41)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条