人人書

雜誌

保存到桌面 | 簡體人人書 | 手機版
傳記回憶文學理論偵探推理驚悚懸疑詩歌戲曲雜文隨筆小故事書評雜誌
人人書 > 雜誌 > 用Excel設計英語單詞聽寫程序

用Excel設計英語單詞聽寫程序

時間:2024-11-02 09:08:00

Excel是一個統計軟件,很難想像Excel與英語單詞聽寫會建立關聯,但Excel2016的“朗讀單元格”功能足以使人們改變這種想法,利用簡易的ExcelVBA可以設計出朗讀效果良好的英語單詞聽寫程序。

文|江育奇

1.“朗讀單元格”按鈕設計

“朗讀單元格”不是“常用命令”,默認情況下在功能區中找不到這個命令。但可以通過“自定義功能區”設置,讓這個命令顯示在功能區工具欄上。

選擇“文件→選項”菜單,進入“選項”設置對話框,點擊“自定義功能區”,在右邊的“主選項卡”中單擊選擇“開始”選項卡,再點擊下面的“新建組(N)”按鈕新建一個自定義組。具體方法如下。

在“從下列位置選擇命令(C)”中選擇“不在功能區中的命令”,找到“朗讀單元格”命令,用鼠标單擊選擇這個命令,确認上一個步驟在“開始”選項卡新建的“新建組(自定義)”處于選擇狀态,點擊“添加”按鈕。這樣,“朗讀單元格”命令便在“開始”選項卡中顯示出來。同樣的道理,将“朗讀單元格-停止朗讀單元格”按鈕也顯示在這個工具欄上。結果如圖1所示。

完成以上兩步後,用鼠标選擇要朗讀的單元格,再點擊“朗讀單元格”按鈕,系統便從上到下按順序朗讀單元格,無論是中文還是英文,都能進行朗讀,朗讀效果良好;點擊“朗讀單元格-停止朗讀單元格”按鈕,系統停止朗讀。然而,這一功能缺乏對單元格之間的間隔進行設置的選項,隻能按要求不停地讀完所有的單元格。但聽寫需要時間停頓去寫,因此,我們必須通過VBA來解決詞與詞之間的停頓間隔時間的控制問題。

2.VBA解決停頓間隔控制

要利用ExcelVBA進行程序設計,先必須在工具欄中顯示“開發工具”。進入“選項”設置對話框,單擊左邊的“自定義功能區”,在右邊窗口中選擇“開發工具”前面的複選框,“開發工具”便顯示在界面上。

點擊“開發工具”選項卡,再點擊“VisualBasic”按鈕(或按Alt+F11),進入VBA編輯環境,單擊“VBAProject(PERSONL.XLSB)”,再選擇菜單“插入→用戶窗體”,插入一個用戶窗體後,修改其名稱為tingxie,Caption(即窗體的标題)屬性為“聽寫程序設置”。

在這個用戶窗體上,分别添加兩個“文字框”控件、兩個“标簽”控件、兩個“命令按鈕”控件,這些控件的“名稱”都用系統默認的名稱。兩個“标簽”的Caption屬性分别是:“單詞數量設置”和“聽寫詞間間隔”,這兩個标簽控件放在兩個“文字框”控件的前面,它的作用是為後面兩個“文字框”的用途作說明;兩個“文字框”的Text屬性分别是:20、2,這是這兩個“文字框”控件的初始值,程序利用這兩個控件讓用戶輸入“單詞數量設置”和“聽寫詞間間隔”數值;兩個命令控鈕的Caption屬性分别是:确定、取消。拖動并調整好窗體各控件的大小與相對位置至自己感覺合适時為止。結果如圖2所示。

3.聽寫程序核心技術實現

聽寫程序核心技術實現分為三部分進行,具體如下。

(1)賦予命令按鈕以靈魂

命令按鈕要賦予其可執行代碼,才能變成一個“活”的按鈕。

雙擊“确定”按鈕,在其中輸入如下内容:

PrivateSubCommandButton1_Click()

n=Val(TextBox1)'獲取朗讀單詞數量

t=Val(TextBox2)'獲取朗讀詞間間隔數量,單位是秒

m=ActiveCell.Row'獲取當前活動單元格的行數

c=ActiveCell.Column'獲取當前活動單元格的列數

b=m+n-1'計算從m開始朗讀,共n個單詞,達到要求時的最後一行的行數

OnErrorResumeNext

Callspeakcontrol'調用朗讀控制過程

tingxie.Hide

EndSub

雙擊“取消”按鈕,在其中輸入如下内容:

PrivateSubCommandButton2_Click()

tingxie.Hide

EndSub

(2)創建朗讀控制過程這個朗讀控制過程的作用是确定朗讀的單元格,控制朗讀過程中的詞間間隔,如果完成了所設置的朗讀任務,則退出程序。

用鼠标單擊“VBAProject(PERSONL.XLSB),再選擇菜單“插入→模塊”,在這裡要完成聲明公共變量、創建朗讀控制過程以及朗讀過程的工作。在其中輸入如下内容:

Publica,b,c,m,n,tAsInteger'定義公用變量Subspeakcontrol()

Dimp,q

q=ActiveSheet.Cells(1,1).SpecialCells(xlLastCell).Row'獲取工作表的最後一行

OnErrorResumeNext

Ift<10Then

p="00:00:0"&t'時間在10秒以内時,計算p的方法

Else

p="00:00:"&t'時間在10秒或以上時,計算p的方法

EndIf

Ifm>bOrm>qThen'如果朗讀單詞達到設置數量的要求或到了最後一行,則退出程序

ExitSub

Else

a=Cells(m,c)'獲取要朗讀的單元格的文字

Application.OnTimeNow+TimeValue(p),"wordspeak"'按照設定的時間間隔調用朗讀過程

EndIf

EndSub

(3)實施具體朗讀任務以上的朗讀控制過程并沒有具體實施朗讀的工作,朗讀的工作由朗讀過程完成任務。在以上朗讀控制過程的下方,創建一個為wordspeak的朗讀過程,内容如下:

Subwordspeak()

OnErrorResumeNext

Application.Speech.Speaka'朗讀設定單元格中的文字

m=m+1'計算朗讀的單元格的行數

Callspeakcontrol'調用朗讀控制過程

EndSub

這個過程具有朗讀的功能,并将朗讀單元格的行數加1,下移到下一行單元格中,最後返回朗讀控制過程,由控制過程确定是否再往下繼續朗讀單詞。小提示這裡還補充說明時間間隔p的計算問題。由于時間間隔t在60秒以内的這個範圍内可能是1位數,也可能是2位數,這時p的計算方法不一樣,因此,我們要對t的位數作判斷後再選擇計算p合适的方法。

(4)創建啟動宏的過程雖然以上已經有窗體以及相關的控制與朗讀的過程,但還缺少一個啟動宏的過程。在以上過程的下方創建一個新的過程,命名為“聽寫”,内容如下:

Sub聽寫()

tingxie.Show'顯示聽寫設置窗口

EndSub

以上各個模塊内容如圖3所示。為方便使用,可直接通過雲盤下載後複制粘貼(http://pan.baidu/s/1qXcTKFq密碼8r2m)。小提示要運行宏,必須先通過“開發工具”選項卡,點擊“宏安全性”按鈕,進入到“宏設置”中選擇“啟用所有宏”(最下面的選項)。

在Excel2016中調試無誤後,即可運行程序。先在要朗讀的單詞列的最上方單元格單擊,點擊“開發工具”選項卡中的“宏”按鈕,在彈出的“宏”選擇對話框中,選擇“聽寫”宏,再點擊“運行”按鈕,在彈出的“聽寫程序設置”對話框中輸入“單詞數量設置”、“聽寫詞間間隔”,确定後便可進行英語聽寫訓練了。
   

熱門書籍

熱門文章