用VBA實現課件中的智慧型互動

2021-05-22 14:08:41 字數 4329 閱讀 3839

用vba實現課件中的智慧型互動

powerpoint中的vba可以實現很多複雜的互動,但很多老師面對vba程式設計,都會覺得無從下手。所以本期我們為大家安排了乙個關於powerpoint中vba的小專題,以後在課件中實現互動就不會那麼費勁了。

vba基礎

說到vba程式設計,就不得不提到控制項工具箱,我們需要利用其中的控制項搭建需要的環境。

1. 顯示控制項工具箱

在powerpoint中選擇選單「檢視/工具欄/控制項工具箱」。

2. 控制項工具箱(如圖1)中常用按鈕的介紹

(1)核取方塊(checkbox):可以選擇多個選項,常用來設計多選題;(2)文字框(textbox):可以輸入文字,常用來設計填空題;(3)命令按鈕(commandbutton):用來確定選擇或輸入,也可設計超級鏈結;(4)單選框(optionbutton):只能選中乙個選項,常用來設計單選題或判斷題;(5)標籤(label):用來顯示文字資訊。

3. 插入控制項的方法

單擊控制項工具箱上的工具按鈕,然後在幻燈片中拖動到適當大小即可。

4. 進入vba的方法

雙擊幻燈片中的控制項或用選單命令「工具/巨集/visual basic編輯器」即可進入vba程式設計狀態。

5. 控制項的主要屬性及設定方法

進入vba後,需要在「屬性」視窗中對控制項的屬性進行設定。如果沒有出現「屬性」視窗,按f4鍵即可調出該視窗。下面我們就不同的控制項,來說明常用屬性的設定方法。

(1)核取方塊

autosize:有兩個值,true表示根據字的多少調整核取方塊的大小,false表示核取方塊為固定大小;backcolor:設定核取方塊的背景顏色,單擊該屬性框出現下拉按鈕,選擇「調色盤」選項卡後選擇顏色;caption:控制項的名稱,把預設值刪除再重新輸入新名稱;font:設定字型、字型大小及字形,單擊該屬性框出現按鈕,單擊該按鈕出現字型對話方塊,再在對話方塊中設定;forecolor:設定字的顏色,設定方法同backcolor;height:核取方塊的高度,直接輸入數字即可;width:核取方塊的寬度,直接輸入數字即可;value:核取方塊的值,true為選中,false則相反。

(2)文字框

autosize、backcolor、font、forecolor、height、width等屬性的設定方法同核取方塊;value:文字框的值,用來儲存輸入的文字;textalign:設定文字對齊方式。

(3)單選框

屬性設定同核取方塊。

(4)標籤 除value外,其他同核取方塊。

(5)命令按鈕 同標籤。

6. 訊息框msgbox的功能

我們常用訊息框顯示一些互動的資訊,如圖2所示的訊息框用下面的語句可實現:

msgbox("這是乙個例題",vbyesno,"示例")

多選題的製作

1. 題目的設計同單選題

2. 選項:用核取方塊(checkbox),其他設定同單選題。

3. [檢視答案]命令按鈕:因為是多選題,答案有多個,所以要書寫多個條件,條件之間用and連線,表示同時滿足這幾個條件,例如第

一、三、五的選項是正確的,則需要輸入如下語句:

if checkbox1.value=true and checkbox3.value=true and checkbox5.value=true then

給出正確的提示資訊同單選題

else

給出錯誤的提示資訊同單選題

end if

填空題的製作

1. 題目的設定同單選題,填空的地方用文字框。

2. 判斷正誤:因為是填空題,所填答案是文字,所以條件書寫為:

if textbox1.value="正確的文字" then 給出正確的提示資訊同單選題

else

給出錯誤的提示資訊同單選題

end if

注意:正確的文字一定要用半形雙引號括起來,如幾個空一起判斷,方法同多選題。

3. [重新填空]命令按鈕:需要完成如下語句的設定:

private sub commandbutton2_click()

textbox1.value = "請雙擊後填入你的答案!"

end sub

private sub textbox1_dblclick(byval cancel as msforms.returnboolean)

textbox1.value = " "

end sub

單選題的製作

例如我們要設計如圖1所示的選擇題。

1. 題目

可用文字框,也可用標籤。如果用文字框,直接輸入文字即可。如果用標籤,插入後雙擊該標籤啟動vba,修改caption屬性為「5x-15=0的解是:」,再根據需要修改其他屬性(如顏色等)。

2. 選項

插入一單選框,修改其caption屬性為「0」,其他屬性可自行修改。其他的單選項可複製製作好的單選框,然後再修改它們的caption屬性。

3. 檢視答案命令按鈕

在此使用命令按鈕,我們可根據單選框的value屬性的值來判斷答案,如正確選項(單選框)的value的值為true,則為該題選擇正確,否則為選擇錯誤,我們還可根據選擇正誤來給出資訊,有兩種方法。

(1)方法一

用msgbox(),如果選擇正確,顯示資訊「very good!請繼續!」,錯誤則顯示「sorry,你選錯了!正確答案是3,請繼續努力。」

操作步驟:雙擊單選框進入vba,在編輯視窗中完成以下操作。

a. 在編輯視窗中找到如下兩條語句:

private sub optionbutton3_click()

end sub

然後在上面這兩條語句中間插入以下語句:

if optionbutton3.value=true then ex=msgbox("very good!請繼續努力。",vbokonly)

b. 同理,找到如下兩條語句:

private sub optionbutton1_click()

end sub

在這兩條語句中間插入語句:

if optionbutton1.value=true then ex=msgbox("正確答案是3 ,請繼續努力。",vbokonly)

c. 找到如下兩條語句

private sub optionbutton2_click()

end sub

在這兩條語句中間插入語句 

if optionbutton2.value=true then ex=msgbox("正確答案是 3,請繼續努力。",vbokonly)

說明:ex為自定義變數

(2)方法二

在幻燈片合適的地方插入一標籤,修改其caption屬性為空,其他設定同方法一,只要把正確選項中的「then」後的語名改為「label2.caption="very good!"請繼續!"」,錯誤選項的改為「label2.caption="正確答案是3 ,請繼續努力。"」即可。

4. 重新選擇命令按鈕

在幻燈片適當的地方插入一命令按鈕,修改其caption屬性為「重新選擇」,在編輯視窗中的private sub commandbutton1_click()和end sub語句間插入:

optionbutton1.value = false

optionbutton2.value = false

optionbutton3.value = false

label2.caption =""如判斷正誤用的是方法一,此語句不要)

5. 下一題命令按鈕

在幻燈片適當地方插入一命令按鈕,修改其caption屬性為「下一題」,在編輯視窗中的private sub commandbutton1_click()和end sub語句間插入

if msgbox("是否繼續", vbyesno + vbquestion, 「下一題」)=vbyes then

with slideshowwindows(1).view

.gotoslide 2

end with(2為第2張幻燈片,此語句表示轉到第2張幻燈片)

end if

如果要根據條件的不同轉到不同的幻燈片,可用下面語句:

if 條件 then

with slideshowwindows(1).view

.gotoslide 2

end with

end if

說明:條件可以是caption屬性或value屬性,書寫方法為:控制項名稱(在vba中的名稱).屬性=(value屬性為true或false,caption屬性為具體文字,注意文字要加雙引號),例如下面的語句:

if optionbutton1.value=true then

表示如果單選框1的value值為true,那麼執行then後的語句,一直到end if。

判斷題的製作

所有的設定與單選題類似,只不過是設計兩個選項「√」和「×」,這兩個符號可先在word中插入,然後再複製過來。

用Excel的VBA實現文字匹配與替換

在工作的過程中,有時候為了批量處理excel,不可避免會寫一些vba小程式,而在規範資料格式方面,經常會用正規表示式 以下是我自己經常會用到的小程式 一 文字匹配 function btest byval s as string,byval p as string as boolean dim re...

用VBA獲取cad中的字元框中的字元

sub gettext dim sset as acadselectionset 宣告定義選擇集 dim ent as acadentity 宣告實體 set sset thisdrawing.selectionsets.add ss1 新增選擇集 sset.selectonscreen 在螢幕上選...

(原創)用訊飛語音實現人機互動的功能

目前在做一款車載的專案,其中有乙個需求是在開車的時候實現人與手機的對話,全過程不需要用手,只用語音操控。這個就類似於人與機械人的對話,機械人在後台一直待命,使用者說話 機械人做出對應的反映。但由於使用者手機電源的寶貴性,又不能讓使用者一直開著錄音監聽,這樣很耗費資源。因此使用了訊飛語音提供的喚醒功能...