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