:D snasui.com ยินดีต้อนรับ :D
ยินดีต้อนรับสู่กระดานถามตอบ Excel and VBA และอื่น ๆ ที่เป็นมิตรกับทุกท่าน มีไฟล์แนบมหาศาล ช่วยให้ท่านค้นหาและติดตามศึกษาได้โดยง่าย :thup: สมาชิกท่านใดที่ยังไม่ได้ระบุ Version ของ Excel ที่ใช้งานจริง สามารถทำตาม Link นี้เพื่อจะได้รับคำตอบที่ตรงกับ Version ของท่านครับ :arrow: ระบุ Version ของ Excel
:!: โปรดทราบ :!:
  1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ด
  2. การสมัครสมาชิก การ Login การกู้คืนรหัสผ่าน
    1. สมัครสมาชิกดูขั้นตอนได้ที่ :arrow: สมัครสมาชิก
    2. Login เข้าระบบโดยคลิกปุ่ม Login ตรงมุมขวาบนของหน้านี้ :roll:
    3. การ Login ผ่าน Facebook ดูวิธีที่ :arrow: Login ผ่าน Facebook
    4. ลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่ :arrow: Reset รหัสผ่าน
  3. มีปัญหาการใช้งาน แจ้งผู้ดูแลระบบได้ที่ :arrow: ติดต่อผู้ดูแลระบบ
  4. กำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษดูได้ที่ :arrow: ตั้งค่าส่วนตัว
  5. การตั้งและตอบกระทู้ดูได้ที่ :arrow: วิธีการตั้งและตอบกระทู้
  6. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ :arrow: จัดรูปแบบตัวอักษร
  7. กำหนดขนาดตัวอักษรใน Browser ดูได้ที่ :arrow: กำหนดขนาดตัวอักษรใน Browser

หลีกเลี่ยงการใช้ VBA

ฟอรัมสำหรับฝึกแก้ปัญหา สนทนาปราศรัย Update เรื่องทั่วไป
Post Reply
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

หลีกเลี่ยงการใช้ VBA

#1

Post by bank9597 »

:D กระทู้อยากขอความคิดเห็นจากเพื่อนสมาชิก โดยเฉพาะอาจารย์ที่เคารพครับ

ผมได้ลองใช้ VBA ในการทำงานกับ Excel มีฟอร์มที่สร้างจาก Object VBA ค่อนข้างเยอะ จนงานเสร็จค่อนข้างสมบูรณ์
แต่เมื่อนำมาทดลองใช้จริงๆ มีปัญหาตามมาค่อนข้างเยอะ คิดว่าเกิดจากการไม่ชำนาญเรื่องโค๊ด จึงทำให้การทำงานของระบบเจอปัญหาเออร์เรอร์มากมาย ทั้งๆที่เคยทดสอบมาก่อนแล้วทั้งสิ้น

1. ปัญหาที่เจอส่วนใหญ่คือทำงานอยู่ พอจะเรียกฟอร์มมาแสดง ก็กลับไม่แสดงเสียเฉยๆ ทั้งๆที่ก่อนทำงานทุกอย่างก็ปกติ
2. ทุกครั้งที่ทำงานเสร็จ แล้วกดบันทึก ก็กลับบันทึกไม่ได้บ่อยมากๆ ต้องมานั่งทำงานเดิมใหม่

ปัญหาที่ผมเจอนี้ อาจจะไม่เหมือนท่านอื่นๆก็เป็นได้ เพราะอาจจะอยู่ที่ตัวโปรแกรมส่วนหนึ่ง การเขียนโค๊ดที่ผิดหลักการส่วนหนึ่ง แต่อย่างไรก็ดี การใช้ VBA ในการทำงานผมคงเข็ดหลาบไปอีกนานครับ :D เพราะมีปัญหาเยอะเหลือเกิน จะพยายามใช้ให้น้อยมากที่สุด และจะเน้นการใช้สูตรของเอ็กเซลล์และเครื่องมือของโปรแกรมที่มีมาให้แล้วจะดีที่สุดครับ เพราะแทบจะไม่มีปัญหาอะไร ดังที่อาจารย์ได้กล่าวไว้ว่า ใช้ความสามารถของโปรแกรมให้เต็มที่ก่อนจะไปใช้แบบอื่น คำนี้ถูกต้อที่สุดครับ :D

ผมได้ทดลองแล้ว เห็นแล้ว จึงนำสิ่งเหล่านี้มาร่วมแชร์กันครับ เผื่อใครที่คิดจะใช้ VBA ในการทำงาน ก็คงต้องศึกษาให้รู้ดีก่อนครับ หากยังไม่เก่งพอก็อย่าเพิ่งไปใช้เลยครับ :D
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
snasui
Site Admin
Site Admin
Posts: 30920
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: หลีกเลี่ยงการใช้ VBA

#2

Post by snasui »

:D ผมย้ายหัวข้อมาที่ Talk แทนอยู่ในหมวด Excel ซึ่งเน้นถามตอบปัญหา :mrgreen:

กรณีที่คุณ Bank9597 ได้ประสบกับตัวเองและนำมาบอกกล่าวให้เพื่อน ๆ ได้ทราบนับว่าเป็นประโยชน์ครับ ในการทำงานกับ VBA คงหลีกเลี่ยงไม่ได้ที่จะเกิด Error ดังนั้นในหนังสือทุกเล่มที่มีความสมบูรณ์จะต้องมีเรื่องการจัดการกับสิ่งผิดพลาดเหล่านี้ที่เรียกว่า Error Trapping อยู่ด้วย ซึ่งผู้ที่ปรารถนาจะใช้งาน VBA ต้องทำใจที่จะพบเจอกับ Error ไม่อย่างใดก็อย่างหนึ่งอยู่อย่างแน่นอน ยกเว้นว่าจะใช้เพียงเล็ก ๆ น้อย ๆ ซึ่งจะไม่นำมารวมกล่าวกับประเด็นที่คุณ Bank9597 ยกขึ้นมานี้ ที่เป็นลักษณะของการตั้งใจจะใช้เพื่อสร้างงาน สร้างระบบงาน :mrgreen:

สำหรับการใช้งาน Microsoft Excel ได้อย่างราบรื่น ผมเห็นว่าควรใช้ความสามารถที่มีมาอย่างเต็มที่เสียก่อน นอกเหนือจากความสามารถเหล่านั้นค่อยไปใช้ VBA ครับ กรณีไหนทำด้วย Excel ได้หรือไม่ได้สามารถถามกันในฟอรัมได้เลย

หากจำเป็นต้องใช้ VBA ก็ให้เริ่มด้วยการบันทึก Macro เพื่อให้ได้ Code ที่ถูกต้องแล้วค่อยปรับใช้ ก็จะลดความผิดพลาดลงได้ กรณีที่ซับซ้อนมากขึ้นไปเช่นการ Loop จำเป็นต้องพึ่งพาการเขียน Code ขึ้นมาเอง เนื่องจากการบันทึก Macro ไม่สามารถจะ Loop ได้ จำเป็นที่จะต้องศึกษาโครงสร้างภาษา ศึกษา Object Oriented Programming (OOP) ตัวแปร คำสงวน ไวยากรณ์ การทำงานร่วมกับโปรแกรมอื่น ๆ ฯลฯ การศึกษาทีว่านี้ลำพังการอ่านอย่างเดียวไม่พอครับ ต้องลงมือทำจริงและต้องใช้ความพยายาม ใช้ความอดทนสูงถึงจะได้ผลครับ :P
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: หลีกเลี่ยงการใช้ VBA

#3

Post by bank9597 »

:D
ผมย้ายหัวข้อมาที่ Talk แทนอยู่ในหมวด Excel ซึ่งเน้นถามตอบปัญหา
ขออภัยด้วยน่ะครับ :D

สำหรับคำแนะนำที่อาจารย์ให้มา ชัดเจนมากครับ

ผมต้องเรียนอาจารย์ว่า ตอนนี้ต้องกลับมาทำใหม่เกือบทั้งหมด และพยายามลดการใช้ VBA ลงไปให้มากทีสุดครับ
ผมเอาระบบที่ทำเสร็จแล้ว มาทดลองใช้จริง เกิดปัญหามากมาย ตอนนี้เลยต้องกลับมาทบทวนและพยายามหาวิธีที่ง่ายกว่าเดิมมาปรับปรุงระบบใหม่ ผมคิดว่าการใช้สูตรนี่แหละครับ ดีที่สุด ไม่เกิดปัญหาจุกจิก แม้เปลี่ยนชื่อเปลื่ยนอะไร สูตรก็จะปรับให้เองอัตโนมัติ และให้ค่าที่ถูกต้องเสมอ

หลังจากนี้ไปคงต้องขอคำแนะนำจากอาจารย์อีกแล้วล่ะครับ

ขอบคุณเป็นอย่างสูงสำหรับความเอื้อเฟื้อน่ะครับ :D
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
norkaz
Gold
Gold
Posts: 1739
Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365

Re: หลีกเลี่ยงการใช้ VBA

#4

Post by norkaz »

คุณ bank ในรูปถือ ใบปริญญา ปกสีม่วงๆ ถ่ายรูปหน้า มหาวิทยาลัย จบ มช.ใช่ไหมครับ (ถ้าเดาไม่ผิด)
ผมเคยผ่านไปแถวๆนั้น ถ้าไม่ใช่ขออภัย ผมแก่แล้ว หลงๆลืมๆ แถมเลอะเลือนอีกต่างหาก
User avatar
bank9597
Guru
Guru
Posts: 3868
Joined: Wed Aug 17, 2011 11:49 am

Re: หลีกเลี่ยงการใช้ VBA

#5

Post by bank9597 »

:D ผมจบจากมหาวิทยาลัยวลัยลักษณ์ นครศรีธรรมราชครับ (เหนือกับใต้เลยน่ะนั่น อิอิ)

ส่วนที่บอกผิดนั้น ไม่เป็นไรครับ อิอิ (ว่าแต่บอกชื่อสถาบันไป เสียชื่อสถาบันหมด เพราะอ่อนโปรแกรมเหลือเกิน สถาบันผิดหวัง)
Forum Rules
  1. อย่าใช้ภาษาแชทในการตอบ-ถาม
  2. ตั้งชื่อกระทู้ให้สื่อถึงปัญหาและไม่เจาะจงตัวผู้ตอบ
  3. ให้อธิบายปัญหาและระบุคำตอบที่ต้องการมาในฟอรัม
  4. ควรแนบไฟล์ตัวอย่างมาที่ฟอรั่ม
  5. หากใช้ VBA ให้ลองเขียนมาเองก่อนเสมอ
  6. แจ้งผลการใช้งานทุกครั้งเมื่อได้รับคำตอบ
User avatar
norkaz
Gold
Gold
Posts: 1739
Joined: Wed Jan 12, 2011 7:59 pm
Excel Ver: 2013,365

Re: หลีกเลี่ยงการใช้ VBA

#6

Post by norkaz »

ขอภัยครับ ผมแก่เลี้ยว ขออภัยอีกครั้ง เขียนผิด แก่แล้วครับ
มหาวิทยาลัยที่ผมเอ่ยถึงคง ให้อภัย ที่ผมพลาดเผลอไป

คุณ bank ใช่ว่าฝีมือธรรมดาที่ไหน มาช่วยตอบ ปัญหา ช่วยเหลือเพื่อนสมาชิกอยู่บ่อยๆ สถาบันที่คุณ bank สำเร็จการศึกษามาก็
คงภาคภูมิใจทีมี ศิษย์เก่าช่วยเหลือ สังคมครับ

ยินดีครับ
Norkaz
Post Reply