Page 1 of 1

สอบถามข้อแตกต่างระหว่าง Activate กับ Initialize ครับ

Posted: Mon Nov 05, 2018 11:11 am
by OnliezU
อยากทราบข้อแตกต่างระหว่าง Activate กับ Initialize เพราะผมเข้าใจว่า Activate คือ เมื่อมีการเปิด/เรียกใช้ โค้ดที่อยู่ภายใน Object จึงจะทำงาน แต่ Initialize โค้ดภายใน Object มันก็ทำงานด้วยในลักษณะเดียวเลย จึงสงสัยว่ามันแตกต่างอย่างไรครับ

Re: สอบถามข้อแตกต่างระหว่าง Activate กับ Initialize ครับ

Posted: Mon Nov 05, 2018 10:57 pm
by snasui
:D ปกติ Initialize จะใช้กับ UserForm เราสามารถใช้ประโยชน์จาก Initialize เพื่อเตรียมตัวแปรหรือกำหนดค่าตั้งต้นต่าง ๆ ให้พร้อมใช้งาน เช่นกำหนดตัวแปรต่าง ๆ Loop ค่าที่จำเป็นมาใส่ CoboBox, ListBox ฯลฯ และเราจะใช้ค่าเหล่านั้นจนกว่าจะมีการปิด UserForm นั้นไป

ส่วน Activate ใช้กับ Object ต่าง ๆ เช่น เซลล์ ชีต ไฟล์ ฯลฯ จะเป็นการแสดงถึงสถานะของการเลือก ถ้าเลือก Object นั้น ๆ เมื่อ Activate แล้วจะกำหนดให้ทำอะไรก็แล้วแต่ต้องการครับ

Re: สอบถามข้อแตกต่างระหว่าง Activate กับ Initialize ครับ

Posted: Tue Nov 06, 2018 9:40 am
by OnliezU
snasui wrote: Mon Nov 05, 2018 10:57 pm :D ปกติ Initialize จะใช้กับ UserForm เราสามารถใช้ประโยชน์จาก Initialize เพื่อเตรียมตัวแปรหรือกำหนดค่าตั้งต้นต่าง ๆ ให้พร้อมใช้งาน เช่นกำหนดตัวแปรต่าง ๆ Loop ค่าที่จำเป็นมาใส่ CoboBox, ListBox ฯลฯ และเราจะใช้ค่าเหล่านั้นจนกว่าจะมีการปิด UserForm นั้นไป

ส่วน Activate ใช้กับ Object ต่าง ๆ เช่น เซลล์ ชีต ไฟล์ ฯลฯ จะเป็นการแสดงถึงสถานะของการเลือก ถ้าเลือก Object นั้น ๆ เมื่อ Activate แล้วจะกำหนดให้ทำอะไรก็แล้วแต่ต้องการครับ
แสดงว่า Initialize เหมือนกับการ Setting ในโปรแกรมต่างๆ แต่ใน VBA ก็จะเป็นการเซทตั้งค่าของ Userform ดังนั้น

ถ้าเกิดผมสร้าง Textbox แล้วต้องการให้ Textbox เป็นค่าว่างเพื่อให้ผู้อื่นใช้งาน ผมก็ควรจะเขียนใน Initialize มากกว่าใน Activate สิครับ

ขอบคุณครับ อ.

Re: สอบถามข้อแตกต่างระหว่าง Activate กับ Initialize ครับ

Posted: Wed Nov 07, 2018 8:28 pm
by snasui
OnliezU wrote: Tue Nov 06, 2018 9:40 am ถ้าเกิดผมสร้าง Textbox แล้วต้องการให้ Textbox เป็นค่าว่างเพื่อให้ผู้อื่นใช้งาน ผมก็ควรจะเขียนใน Initialize มากกว่าใน Activate สิครับ
:D ควรจะเป็นเช่นนั้นครับ เพื่อให้พร้อมสำหรับการใช้งานในชุดข้อมูลถัดไปควรจะ Clear ค่าใน Object ใด ๆ และเตรียมข้อมูลที่จำเป็นเอาไว้เสียก่อนในตอนเมื่อเริ่มเปิด Form หรือเมื่อมีการทำรายการแล้วเสร็จ แต่ทั้งนี้ทั้งนั้นการจะใช้แบบไหน อย่างไร ขึ้นอยู่กับลักษณะงานเป็นสำคัญครับ