看板 Visual_Basic 關於我們 聯絡資訊
※ 引述《gade62001 (lcp)》之銘言: : 因為作業的需要 : 我們想要用VBA做心理測驗 : 但我們想知道USERFORM裡的按鈕 : 可以連結到另外一個新的USERFORM嘛 : 或是MSGBOX裡的回答(EX YES NO) : 可以改成其他選項或是有更多的回答嘛??? : 我們是新手~~~拜託大家幫忙 因為你標題是VBA,就以VBA的狀況來看 VBA中一個表單就是一個程式 如果要用多表單,參數也不容易在多個表單之間傳遞 硬要寫出來,對新手而言也很難寫下去 但是心理測驗往往有那種「本題答A者請跳答8題」的設計 感覺上這種時候用各個form跳來跳去好像會比較好做 因為測驗各題之間只有答題順序的關連,沒有其他累計屬性,如分數 最後導到某一個form顯示「你是…………的人,你都穿襪子進浴室」就好了 如果你們要做的就如上述(沒有分數累計,但有跳答關係的測驗),可以不看下面 不然,對有分數累計的測驗而言,可以在同一個form中拉多個按鈕、輸入框等元件 在不同情況下顯示或隱藏,用一個form達到多重form的效果 比如說,是非題只顯示兩個按鈕;選擇題顯示到四個; 問答題通通隱藏,只顯示輸入框 這樣你們的程式會比較好寫 按鈕或輸入框顯不顯示利用各個control的visible屬性 如commandbutton1.visible = true,表示顯示;false就是不顯示 還可以用frame把多個control組織起來 這樣控制frame的visible就可以隱藏或顯示同一批control 以下的檔案下載後解開是一個Excel 2003的檔案 含一個form,是一個簡單的算術測驗遊戲 http://goldmember.myweb.hinet.net/transfer/singlechoice.zip 特色是每次執行時除了產生題目外,還會亂數產生一個1-3的難度值 難度1時,顯示兩個按鈕;難度2時顯示三個,以此類推 而各個按鈕的答案則用按鈕的caption屬性來顯示 就測驗而言,把題目用陣列存起來,每題的選項數也用陣列存,不要亂數產生 那麼這個程式就可以做測驗了 但是測驗的答案較長,最好不要顯示在按鈕上 可以用若干個label顯示答案 按鈕就固定顯示A,B,C,D就好 至於那種「本題答A者請跳答8題」的設計 需要一個二維陣列存放各選項的跳題題號(next question) 比如說,nq(10, 4), nq(1, 0)表示第一題選項A的跳題題號; nq(2,2)表示第二題C的跳題題號 如果某一題不管答什麼都不影響答題順序,如第二題,那麼陣列內容就是 陣列索引 (2, 0) (2, 1) (2, 2) (2, 3) 內容 3 3 3 3 而第三題如果答A會跳到8,答B跳到6,其他選項不影響,那就是 陣列索引 (3, 0) (3, 1) (3, 2) (3, 3) 內容 8 6 4 4 整個陣列編起來就是 nq(i, j) i/j 0 1 2 3 ================================ 1 2 2 2 9 2 3 3 3 3 3 8 6 4 4 4 5 7 5 6 ... ............ 其實這種設計用陣列做並不難,題目也很好安排。用到資料庫的時候才是變態難。 --- 前年我同事寫一次這種跳題試卷,他寫的厲害到我看不懂。所以去年另一個客戶 也要跳題的時候我只好自己寫。雖然寫出來了,可是半年之後他又要用,這時我 完全忘記當初是怎麼寫的。Zero-maintainability. :P   -- Google 關鍵字 : MPFC-TCP / 殺人笑話 / 包租婆也有過當羅莉的時候 Youtube關鍵字 : 脫衫脫褲 / 傻蛋奧運 / 宗教審訊 / 買張床 / 單車超人 / 謳歌金錢 *美髮師登山隊 http://tinyurl.com/dm6lh3 *Ypres 1914 http://tinyurl.com/b432jb [蒙帝派松正體中文計畫] http://www.youtube.com/user/JamesBondXD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 58.114.194.207 ※ 編輯: MOONRAKER 來自: 58.114.194.207 (06/08 01:54)
wrltertnnn:pjush 09/02 14:45