俞木發
首先在Word中輸入需要排序的語句,到https:∥share.weiyun.com/YGJ723wm下載所需的代碼,接著按下“Alt+F11”組合鍵打開VB編輯窗口,點擊“插入一模塊”,將下載到的代碼粘貼到模塊窗口,點擊“運行”并按提示保存到一個名為“分解句子”的宏(圖1)。
點擊“視圖一立即窗口”運行上述宏,在“立即窗口”中可見Word中輸入的句子會按照詞組的形式自動進行拆分。在拆分結果中按照題目要求稍加修改,比如將“兔”、“媽”、“媽”重新組合成“兔媽媽”(圖2)。
將整理后的拆分句子內容全選并復制,然后啟動Excel并將拆分后的內容粘貼到新建工作表的C2:C47區域。因為拆分的部分需要打亂順序排列,定位到D2單元格并輸入公式“=RAN DBETWEEN(1,20)”(即在D列填充1→20之間的隨機數字作為排序依據),下拉填充到C47單元格。同時為了方便學生排序拆分的詞組,再為每個詞組添加序號,定位到C2單元格并輸入公式“=UNICHAR(9311+ROW()-1)”,其中UNICHAR函數的作用是在C列填充①②③。這里因為每句話拆解的數量都不同,需要按照實際拆解部分進行填充,比如第一部分填充到B10單元格。第二部分為B13:B19區域,在B13單元格中輸入公式“=UNICHAR(9311+ROW()-12)”(即ROW()-本部分第一個填充行號-1),填充到B23單元格。其他部分填充原理類似。繼續定位到A2單元格并輸入公式“=B2&C2”,下拉填充到A47單元格,這樣A列就會在拆解詞語前自動添加序號(圖3)。


接下來就是將A列的帶序號的拆解部分轉化為行顯示即可。繼續定位到E2單元格并輸入公式“=INDEX($A2:$A10,COLUMN(A2))”,公式中先使用COLUMN(A2)函數讀取列號數字并將其作為INDEX函數的引用數字,引用范圍是“$A2:$A10”(即第一句話的拆解數據區域),將函數向右填充后就會依次將A列的文本在E2:M2之間進行填充。同上,繼續在E3單元格中輸入公式“=INDEX($A13:$A19,COLUMN(A3))”,這里注意“$A13:$A19”的選擇,即每個公式的選擇區域都是對應語句的拆解數據區域。依次在E4、E5單元格中輸入相應的公式并向右填充,這樣就可以將帶序號的拆解語句填充到2、3、4、5行中了(圖4)。
選中C2:D10區域,點擊“數據→排序”,在打開的排序窗口中,主要關鍵字選擇“列D”(即隨機數字填充列),其他選擇默認設置,點擊“確定”進行排序即可。因為D列是隨機數字,這樣可以對C2:C10區域的數據進行隨機排序。同理選中其他語句區域(如C13:D19區域對應第二句)進行排序,最終在E2:M5區域獲得亂序排列的考題數據(圖5)。
完成上述的操作后,選中E2:M5區域并復制,返回到Word窗口并依次點擊“開始→粘貼→只保留文本”,輸入題目說明就可以完成這類試題的制作了(圖6)。
上述方法適合于一次性制作多個句子的試題,每次制作的考題句子拆分的長度都不相同,這樣很多函數的輸入都要更改。對于需要經常制作不同句子考題的老師,可以在Excel中預先制作一個模板。
在Excel中新建一個工作表,在A2單元格中輸入公式
“=IF(C2="","",B2&C2)”(使用IF函數對A列顯示的值進行判斷,如果C2的值不為空,則顯示B2&C2內容,否則顯示為空),將公式下拉填充到A17單元格(假設一句話最多拆分為16個詞組,一般已經足夠小學生使用)。在B2單元格中輸入公式“=IF(C2="","",UNI CHAR(9311+ROW()-1))”,D2單元格中輸入公式“=IF(C2="","",RANDBETWEEN(1,20))”,同樣使用IF函數進行相應的判斷,不為空則顯示填充序號和填充隨機數字,在F2單元格中輸入公式
“=INDEX($A2:$A17,COLUMN(A2))”,填充到U2單元格(圖7)。
點擊“開發工具一錄制宏”,執行下面的操作錄制一個宏,并為宏設置一個快捷鍵“Ctrl+W”:
選中C2:D17區域中的內容,然后點擊“數據→排序”,主要關鍵字選擇“隨機排序”;選擇F2:U2區域中的內容并復制;定位到A18單元格,依次點擊“開始→選擇性粘貼→數值”;繼續定位到第17行,右擊并選擇“插入行”,完成宏的錄制。
這樣以后在制作類似的考題時,我們只要在C2:C17區域中輸入自行拆分的語句內容(字數不夠時可以留空,詞組可以按自己的需要任意拆分),然后按下“Ctrl+W”組合鍵(每執行一次會重新進行排序)。重復上述操作輸入新的句子,自動制作好的試題會依次排列在19、20、21……行(圖8)。