PDA

View Full Version : การแสดงสูตรเฉพาะช่วงที่ต้องการ



worachai_p
14 May 2007, 15:16
รบกวนอาจารย์ช่วยไขปัญหาให้ด้วยครับ (ตามไฟล์แนบ)

วานิชย์
14 May 2007, 15:37
กำหนด Format Cells - Protection เป็น Hidden สำหรับ Cell ที่ไม่ต้องการให้ผู้ใช้เห็นสูตรจากนั้นใช้วิธีการสั่ง Protec Sheet ก็น่าจะเรียบร้อยแล้วครับ
:)

worachai_p
15 May 2007, 15:22
คือว่า การที่เราจะตรวจข้อสอบผู้รับการทดสอบ โดยดูว่าเขาเข้าใจมากแค่ไหน
จึงต้องการดูว่า ผลลัพธ์ ที่ได้มีที่มาอย่างไร เช่น 5*3 = 15 ผลลัพธ์ได้ 15 เท่ากัน
แต่ต้องการดูว่าเขาใช้สูตรอะไร แต่ติดที่ว่าตอนสั่งพิมพ์กระดาษคำตอบ เพื่อแสดงสูตร
มีข้อแม้ที่ว่าต้องแสดงเวลาเริ่มต้น - สิ้นสุด และมีระยะเวลาที่ใช้ (บวกลบกัน) กลับแสดง
เป็นตัวเลข สูตรบวกลบ และเวลา ก็แสดงเป็น 39216.5982378472 แทนที่จะเป็น
14/5/2007 14:21:28 ก็เลยฝากหาวิธีให้ครับ

สมเกียรติ
15 May 2007, 16:23
ก่อนจะเปิดห้องสอบ ต้องตรวจสอบนาฬิกาของ PC ก่อนว่าตรงกัน และต้องระวังไม่ให้นักเรียนเข้าไปแก้นาฬิกาของ PC ให้ย้อนได้

แฟ้มนี้ก่อนใช้งานต้องใส่รหัสป้องกันชีต "yourpassword" ก่อน ซึ่งจะพบว่าเฉพาะเซลล์ที่ให้สร้างสูตรเท่านั้นที่จะยอมรับค่าใหม่ได้

พอเริ่มต้นสอบให้กดปุ่ม อ่านโจทย์ ซึ่งจะบันทึกเวลาเริ่มโดยรหัส


Sub StartExam()
ActiveSheet.Unprotect ("yourpassword")
[Start] = Time
ActiveSheet.Protect ("yourpassword")
End Sub

พอกดปุ่มสิ้นสุด จะบันทึกเวลาพร้อมกับซ่อน column ของสูตร โดยใช้รหัส


Sub StopExam()
ActiveSheet.Unprotect ("yourpassword")
[Stop] = Time
HideAnsColumn
ActiveSheet.Protect ("yourpassword")
Range("a1").Select
End Sub
Sub HideAnsColumn()
ActiveSheet.Unprotect ("yourpassword")
Columns("G:G").Select
Selection.EntireColumn.Hidden = True
ActiveSheet.Protect ("yourpassword")
End Sub

โดยเราจะใช้ Function VBA =Getfml(Cell) เพื่อแสดงสูตรที่สร้างไว้เป็นคำตอบให้พิมพ์ครับ


Function Getfml(c)
Getfml = c.Formula
End Function

worachai_p
18 May 2007, 14:55
ก่อนอื่นต้องขอบคุณอาจารย์และคุณวาณิชย์มากๆครับ
ผมลองปรับใช้ดูแล้วใช้งานได้เรียบร้อยแล้วครับ