Page 1 of 2

การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameover

Posted: Mon Dec 20, 2010 12:56 pm
by natamud
ดิฉันครูชนบท เคยถามคุณคนคอนแล้วแต่ยังปฏิบัติไม่ได้เลยค่ะ ขอความกรุณาช่วยอธิบายด้วยค่ะ ตามที่ไฟล์แนบมานี้ดิฉันต้องการให้มีปุ่มเริ่มเล่นจับเวลา ประมาณ 10 นาที ทำไม่ทันเวลา Gameover ค่ะ เล่นเสร็จไปเกม 2 ถ้าทำยากคุณคนควนช่วยอธิบายถึงทำให้ Gameover ก็พอค่ะ ขอบคุณมากค่ะ ครูชนบท

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Mon Dec 20, 2010 8:03 pm
by snasui
:D คงอธิบายให้เข้าใจไม่ง่ายนักครับ เพราะมันต้องเข้าใจหลักการเขียนโปรแกรม คือ เขียน VBA เป็น การจับเวลาถอยหลังจะต้องเขียน VBA ครับ ไม่สามารถทำได้ด้วยฟังก์ชั่นการใช้งานตามปกติที่ Excel ให้มาได้

หลักการคือ
1. ระบุเวลาว่าต้องการให้เวลาเท่าไร
2. หักเวลาลงไปเรื่อย ๆ ทุกวินาที
3. หากครบตามกำหนดจะแสดงข้อความตามที่ต้องการเช่น หมดเวลา หรือ Game Over ฯลฯ

การเข้าไปดูหรือแก้ไขเปลี่ยนแปลง Code สามารถที่จะกดแป้น Alt+F8 > เลือก ชื่อที่ต้องการดู > Edit

และการจะให้ Code VBA ทำงานได้ จะต้องกำหนดให้โปรแกรมยอมรับการใช้งาน Macro (VBA Code หรือ Macro Code คือตัวเดียวกัน) ได้ โดยเข้าไปกำหนดดังนี้ครับ

1. คลิก Tools > Macro
2. คลิก Security > กำหนดเป็น Medium หรือ Low กรณีกำหนดเป็น Medium จะต้องคลิกให้ยอมรับการใช้งาน Macro ทุกครั้งเมื่อเปิดไฟล์นี้

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Tue Dec 21, 2010 4:15 pm
by natamud
ดิฉันเข้าไปแก้ไขCode โดยเข้าALT+F 8 เลือกชื่อที่ต้องการดูจะไปที่Edit แต่ Edit เข้าไม่ได้ ทำอย่างไรค่ะ และโค้ด Sub StartTime Sub Reset ที่เคยโพสต์ไว้ คืออะไร เป็นการตั้งเวลา หรือไม่ ต้องทำอย่างไร พิมพ์โค้ดที่ไหน ช่วยตอบด้วยค่ะ ขอบคุณค่ะ

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Tue Dec 21, 2010 4:28 pm
by snasui
:D การ Edit Code ไม่ได้ เป็นไปได้ว่าลงโปรแกรมไม่สมบูรณ์ ลองทดสอบเครื่องอื่นดูครับ การแก้ไขเปลี่ยนแปลง Code สามารถเข้าด้วยวิธีที่ผมบอกได้ ซึ่งเป็นหนึ่งในหลาย ๆ วิธี

วิธีอื่น ๆ คือในการเข้าถึง Code VBA คือกดแป้น Alt+F11 > จะเปิดหน้าต่าง VBE > จากนั้น Double Click Module1 ในหน้าต่าง Project - VBAProject ด้านซ้ายมือ (หากไม่ีมีหน้าต่างนี้ให้กดแป้น Ctrl+R ขึ้นมาก่อน) :P

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Wed Dec 22, 2010 3:26 pm
by natamud
เหมือนจะเข้าใจแต่ยังไม่เข้าใจ ขอความกรุณาช่วยดูงานที่แนบมาด้วยค่ะ ดิฉันต้องการให้เริ่มจับเวลาคลิกปุ่มเริ่มเล่น ในSheet 4 ซึ่งSheet 4 จะลิงค์ไปหน้าSheet 6 ซึ่งเป็นหน้าเล่น เกม ให้เวลาเล่น 5 นาที หมด 5 นาที Gameoverที่Sheet 6 :flw:

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Wed Dec 22, 2010 3:31 pm
by snasui
:? ช่วยแนบไฟล์มาใหม่ครับ ถ้าไฟล์มีขนาดใหญ่กว่า 1 เมก ให้ Zip มาก่อนครับ :P

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Wed Dec 22, 2010 4:17 pm
by natamud
:flw: ลืมแนบไฟล์

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Wed Dec 22, 2010 4:55 pm
by snasui
:D ผมเปิดไฟล์ดูแล้ว ไม่เห็นมี Code ที่ผมเขียนให้ไปอยู่เลย ไม่ทราบว่าได้ Copy Code ที่เขียนให้ไปมาไว้แล้วยังครับ

ที่บอกว่าเหมือนจะเข้าใจ ผมสรุปให้เลยว่ายังไม่เข้าใจครับ :tt:

ให้ดู Code ตัวอย่างที่ผมให้ไปและ Copy Code มาไว้ในไฟล์นี้ให้ได้ก่อน อย่างอื่นค่อยว่ากันครับ วิธีการเข้าไปดู Code ทำอย่างไร ผมบอกไว้หมดแล้วในความเห็นก่อน ๆ และจับภาพมาให้แล้วตามด้านล่าง :P

การเพิ่ม Module เมื่อเข้าไปยังหน้าต่าง VBE แล้วให้คลิก Insert > Module

สำหรับคนที่ไม่เคยมีพื้นฐานการเขียน VBA จะถามตอบกันในฟอรัมเพื่อให้เข้าใจได้แก้ไขเองเป็นนั้นไม่ใช่เรื่องที่ง่ายนักครับ :mrgreen:

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Wed Dec 22, 2010 11:27 pm
by natamud
ขอเปลี่ยนเกมใหม่คะเกมเก่าทำอย่างไงก็ไม่ยอมให้แก้ Code ที่พิมพ์ถูกไหมเวลาพิมพ์ตรงที่เป็นภาษาไทยทำไมไม่เป็นภาษาไทย จะแก้อย่างไรค๊ะ

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Thu Dec 23, 2010 9:28 am
by snasui
:) Code ที่พิมพ์มาไม่ถูกและไม่ครบครับ

ดูวิธีการปรับให้สามารถคีย์ภาษาไทย ทั้งการเข้าไปดู Code ในแต่ละที่ได้ตามภาพด้านล่าง

สำหรับกรณีนี้ไม่ควรพิมพ์ Code เข้าไปเอง ให้ Copy จากที่ผมเขียนไว้ให้แล้วจะได้ไม่ผิดพลาด

หากทำเสร็จแล้ว ให้อธิบายว่า ใช้เซลล์ใดเป็นเซลล์ที่ต้องการให้แสดงเวลาคงเหลือ คลิกปุ่มใดเพื่อเป็นการเริ่มเล่น เพื่อจะได้ปรับ Code ให้อ้างอิงตำแหน่งให้ตรงกับการใช้งานจริง จะได้ศึกษาดูว่าต้องปรับแก้ตรงไหน อย่างไร :P

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Thu Dec 23, 2010 8:02 pm
by natamud
ดิฉันได้ Copy Code ตามที่บอกค่ะ ปุ่มเล่นเกมคือ F26 ถึง 28 ที่Sheet 4 ซึ่งลิงค์ไปที่ Sheet 5 โดยมีเซลบอกเวลาถอยหล้ง และ GameOveที่ F12ถีง F 14 ที่Sheet 6 ขอบคุณค่ะ :?:

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Fri Dec 24, 2010 10:25 am
by snasui
:D ลองดูตัวอย่างการปรับ Code ตามไฟล์แนบครับ

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Fri Dec 24, 2010 1:18 pm
by natamud
;) คิดว่าเกือบเข้าใจแล้วค่ะ แต่ยังทำไม่ได้ ช่วยดูCode ในเกมให้ด้วยนะคะ ตั้งแล้วเมื่อคลิดเล่นเกมเวลายังไม่ขึ้นเลยค่ะ(เริ่มจับเวลาเมื่อคลิกปุ่มเริ่มเล่น sheet 1 บอกเวลาที่ F 12 ถึง G14 Sheet 2 หน้าเล่นเกม :?:

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Fri Dec 24, 2010 1:30 pm
by snasui
:D ได้ทำตามด้านล่างแล้วยังครับ
snasui wrote::D ...
และการจะให้ Code VBA ทำงานได้ จะต้องกำหนดให้โปรแกรมยอมรับการใช้งาน Macro (VBA Code หรือ Macro Code คือตัวเดียวกัน) ได้ โดยเข้าไปกำหนดดังนี้ครับ

1. คลิก Tools > Macro
2. คลิก Security > กำหนดเป็น Medium หรือ Low กรณีกำหนดเป็น Medium จะต้องคลิกให้ยอมรับการใช้งาน Macro ทุกครั้งเมื่อเปิดไฟล์นี้

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Fri Dec 24, 2010 1:38 pm
by snasui
:D ผมดูไฟล์แนบแล้วรู้สึกว่าไฟล์จะเปลี่ยนแปลงไปเรื่อย ๆ

ไม่ทราบว่าไฟล์เดิมสามารถใช้งานได้หรือไม่ครับ ถ้าใช้ได้ ลองสังเกตว่าไฟล์เดิมมี Code อย่างไร

การสร้าง Object เพื่อคลิกให้ Run Code และการ Assign Macro สามารถดูตัวอย่างเป็นภาพเคลื่อนไหวได้ที่นี่ครับ http://www.snasui.com/viewtopic.php?f=3&t=593

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Fri Dec 24, 2010 5:49 pm
by natamud
ไพล์งานที่อาจารย์ทำ(ขออนุญาตเรียกเลยนะคะ)สำเร็จดีมาก ดิฉันเลยลองทำเกมใหม่ดู และทำปุ่มเล่นเกมได้แล้ว แค่พอคลิกเล่นไม่ไปไหน มีข้อความว่าไม่พบแมโครปุ่ม เวลาก็ไม่เดินด้วย ต้องแก้อย่างไรค๊ะ ข่วยด้วยค่ะ ขอบคุณค่ะ :oops:

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Fri Dec 24, 2010 6:16 pm
by snasui
:D ลองดูการ Assign Macro และกำหนด Format ของเวลาตามภาพด้านล่างครับ :mrgreen:

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Sun Dec 26, 2010 2:17 pm
by natamud
:| ขอบคุณอาจารย์มากค่ะ ที่ช่วยสอน(ต้องใช้คำนี้เพราะไม่เคยมีความรู้มาก่อน) ทำได้แล้วค่ะ ถ้าดิฉันจะทำต่อว่าถ้าผู้เล่นทำคะแนนผ่านตามเกณฑ์ที่กำหนดแล้วสามารถไม่เกม 2 ทำได้ไหมค่ะ ต้องทำอย่างไร ขอบคุณค่ะ :P

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Sun Dec 26, 2010 2:31 pm
by snasui
:D คะแนนผ่านเกณฑ์คือเท่าไรถึงสามารถไปเล่นเกม 2 ครับ และการจะไปเล่นเกม 2 ได้ต้องมีเหตุการณ์ใด ๆ หรือการกระทำใด ๆ เกิดขึ้นก่อนเช่น คลิกเซลล์ใดหรือคลิกปุ่มที่สร้างไว้ล่วงหน้าว่าให้ไปเกม 2 อย่างนี้เป็นต้น และต้องออกแบบมาเหมือนเดิมว่าจะให้มีการนับเวลาที่เซลล์ไหน ต้องการเวลาสำหรับเกม 2 กี่นาทีครับ :)

Re: การทำปุ่มเริ่มเล่น การตั้งเวลาถอยหลัง สิ้นสุดเวลา gameov

Posted: Mon Dec 27, 2010 11:59 am
by natamud
ขอกลับไปเกมแรกอีกค่ะ มีปัญหาคือเวลาพิมพ์คำตอบแต่ละข้อเวลาจะหยุดเดืน อยากให้เวลาเดินตลอดทำอย่างไรค่ะ