2018年2月16日 星期五

[Excel]統整學生能力,輔導的雙週成績單

前言:

來到這所學校也已快滿三年了,在第一次參加教育噗浪客時就深受震憾,有老師竟然可以把能力指標當成每個孩子是否達成目標的參考,並設計出個人表現的成績單。
我想說的是,如果普通班都能做到,那人數較少的特教班,我是不是更該達成。我可以不屑行政的亮點,嘲諷教育圈的人際關係。但和家長的公開透明,應該是對自己的承諾。

真實的紀錄是花時間的,但要是家長能藉此更了解孩子一點,能更有機會參與,那也值得。

這幾天將之前累積的成功和失敗經驗,再加上成型的表單調整到可以整合的地步,暫時成為以下的模式:



另做一下這次製作的一些思維,當做未來修正的參考:


2/16 完成最終樣版及資料的位置安排, 傍晚出門散步釐清程式要寫的方向

2/17 動工excel vba

1. 在樣版底部加上"提供最近兩週,學生上課表現及能力。如有疑問可再和老師討論,謝謝。"字樣。
-字體調整到9號字,原則上不要佔版面,而且我也沒那麼希望人家來討論。("投資一定有風險,基金投資有賺有賠..."的概念)

2. 將學生名單直接列為陣列,按下開始之後可以直接產出學生的資料表。
-原本是想動態去抓取資料中不重覆的名字資料,但有可能有的學生當週並沒有目標要結束收尾,所以就用固定版本,反正一年才調一次code 也還好。

3. 確認複製並且增加一列的指令
-學生當週結束的目標多寡不一,為避免浪費空格,要動態去設定。用的方法是使用巨集錄製動作後再看程式碼。

4. 讀取學生的資料,從第一個學生開始比學習目標,若是姓名和試算表上的資料一致,則該筆資料先用括弧標明科目, 然後加上學習的目標放入cRec1的陣列裡。另外學生的上課表現放進cRec2的陣列裡。
-使用Erase 指令,在每名學生讀取資料前清掉之前的資料
-陣列的變數用variant,而連接字串要用&而不是+。之前為此debug到翻臉。

5. 全部完成之後,確認陣列當中的數量,逐一增加橫列並填入資料。若是該生沒有要結束的目標(屬於長期目標),則在該欄位列出"個案的所有學習目標持續, 本週無結束的學習目標"
-使用合併欄位後,下場就是即使在樣本中設定自動調整列高以及自動換行,excel 不動就是不動。
-電腦畫面顯示的字串排列和印出來的根本是兩碼子事,比如電腦呈現一行有29 個字,但是要列印時,可能第27個字就換行了。(試算表軟體果然不是文書處理軟體)
-在vba 中,用.WrapText = True代表自動換行;.Rows(cRow).AutoFit是自動調整列高;.RowHeight = 41可設定高度。用vba 設,有部分就有效果。
-合併欄位的.AutoFit,不管幾行,它通通當成一行的高度(WTF....-_-#.)
-最後採用的方式是高度都設成41,但要是目標和表現都小於26個字,則設定自動換行。

6. 第一階段完成 記得加備註

7. 同樣使用第一人去讀取輔導紀錄,測試情況。
-無太大問題,由於輔導紀錄己匯整成只有一筆,所以使用文字變數即可,不用陣列。

8. 確認無誤之後,觀察列印的表現是否會有殘缺漏字,如果有再加上換行符號。
-目前紀錄字數不夠多,可能要等到之後完整版本再來調整。
-個人對於Excel 排版功能的信心程度,大概等於勞基法會為勞工著想的等級。

9. 第二部份結束記得加備註

10. 同樣使用第一人去對應數學的上課計算的成果。然後註記日期以及表現,合併於同一個文字變數,中間以換行符號做區隔,然後全數完成。
-因為Excel 的排版功能...,我還是使用陣列存取後再逐一加橫列輸入,一格中有多行的下場可能會很悲慘。
-由於字串的長度比較固定,所以只要設定好字的大小為12,基本上不會有漏字或是殘缺的問題。

11. 輸入時要特別注意,如果 文字變數有內容的,要加上"三.數學計算表現", 如果沒有就直接跳過不輸入任何東西。
-這和前兩階段比較不同,因為只有上數學課的才有計算考試結果,所以要判斷這個學生有沒有計算的成績,有的話才列標題。

12. 中文字變數填入指定的格子中,並且確認如何將指定的格子四週劃上邊線。
-已改用陣列輸入。
-ActiveSheet.Range(Cells(2, 3), Cells(10, 4)).Select 可運用range 去標明範圍
-最後劃線失敗,而且不明原因。在一直出問題的情況下,決定不管了....反正沒劃框線頂多不美觀,又死不了...

13. 第三階段完成記得加備註


備註:
1. 這是接下來的學期要使用的,還不曉得能不能成功,但已將過往的問題克服並成功區分教學及輔導的內容。我會加油的。
2. 由於個人的Google APP Scripts 功力薄弱(根本就是完全不懂),現仍需靠著 excel做最後的資料整理 。若能成功,會再往Google spreadsheet 發展。