新聞資訊  快訊  焦點  財經  政策  社會
互 聯 網   電商  金融  數據  計算  技巧
生活百科  科技  職場  健康  法律  汽車
手機百科  知識  軟件  修理  測評  微信
軟件技術  應用  系統  圖像  視頻  經驗
硬件技術  知識  技術  測評  選購  維修
網絡技術  硬件  軟件  設置  安全  技術
程序開發  語言  移動  數據  開源  百科
安全防護  資訊  黑客  木馬  病毒  移動
站長技術  搜索  SEO  推廣  媒體  移動
財經百科  股票  知識  理財  財務  金融
教育考試  育兒  小學  高考  考研  留學
您當前的位置:首頁 > IT百科 > 軟件技術 > 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   點擊:()  評論:()
聲明:本站部分內容來自互聯網,內容觀點僅代表作者本人,如有任何版權侵犯請與我們聯系,我們將立即刪除。
▌相關評論
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
▌相關推薦
大家好,今天我準備給大家分享一個關于在PowerPoint放映時ActiveX控件背景透明的問題,也許很多朋友很說,這有何難?設置其屬性不就得了。比如可以通過下面常規的方法進行設置。方...【詳細內容】
2019-11-22   PowerPoint  點擊:(20)  評論:(0)  加入收藏
相關文章
    無相關信息
最新更新
欄目熱門
欄目頭條
31选7开奖11185