Page 1 of 1
หัดใช้ ฟอร์ม ของ VBA ครับ
Posted: Thu Dec 23, 2010 10:46 am
by sdmania
ผมไปซื้อหนังสือมาเพื่อหัดใช้ user form ครับอาจารย์ แต่บางคำสั่งผมทำตามหนังสือแล้วหาคำสั่งไม่เจอ รบกวนอาจารย์ช่วยสอนหน่อยครับ
Re: หัดใช้ ฟอร์ม ของ VBA ครับ
Posted: Thu Dec 23, 2010 10:58 am
by sdmania
ภาพ01 หนังสือเค้าให้กรอกข้อมูลไว้ที่ sheet2 ดังภาพครับ
ภาพ02 เข้าVBE สร้างฟอร์ม โดยเปลี่ยนName ให้เป็น frmData ในช่อง caption เปลี่ยนเป็น CIS Data
จากนั้นก็ทำปุ่ม ok กับ close
ภาพ03 จากนั้นไปที่ sheet1 และสร้างปุ่มเพื่อเรียกฟอร์ม frmData มาใช้โดยเรียกModuleเข้ามาแล้วพิมพ์คำสั่ง
Sub ShowForm()
frmData.Show
End Sub
จากนั้นกด Alt+Tab เพื่อเข้าสู่Excel สร้างปุ่มชุดคำสั่ง ShowForm โดยกำหนดปุ่ม Button ดังนี้
(กรณี Excel2003) เรียกทูลบาร์ Forms ขึ้นมา
คลิกปุ่ม Button มาแดร็กบริเวณ F2:G3
คลิกShowFormแล้วคลิกOk(***ตรงนี้แหละครับที่ผมหา ShowFormไม่เจอมันอยู่หน้าต่างไหนเหรอครับ)
ระบายข้อความบนปุ่ม แล้วพิมพ์ Show Form
คลิกเมาส์บริเวณเวิร์กชีต
Re: หัดใช้ ฟอร์ม ของ VBA ครับ
Posted: Thu Dec 23, 2010 11:01 am
by sdmania
อ้อ ที่กรอกข้อมูลนี่ เค้าจะสอนเรื่องทำcombobox กับเก็บข้อมูลลงexcel น่ะครับ แต่ผมติดตรง ติดต่อShowFormไม่ได้ครับ
Re: หัดใช้ ฟอร์ม ของ VBA ครับ
Posted: Thu Dec 23, 2010 11:54 am
by snasui
การ Show Form ตามที่ถามมานั้นน่าจะเป็นลักษณะว่าให้เราวาด Object แล้วเปลี่ยนข้อความใน Object เป็นคำว่า
Show Form หากเรามีการเขียน Code เอาไว้แล้ว โปรแกรมจะให้เราเลือกเลยว่าหากคลิก Object นี้ให้ไป Execute คำสั่งใด หรือที่เรียกว่าการ Assign Macro
ดูตัวอย่างการวาด Object การ Assign Macro และการคลิก Object เพื่อ Show Form ตามด้านล่างครับ
Re: หัดใช้ ฟอร์ม ของ VBA ครับ
Posted: Sat Dec 25, 2010 10:52 am
by sdmania
รบกวนอาจารย์ช่วยดู code ของtextBox ผมด้วยครับมีerror เกี่ยวกับVlookupครับ
ในsheet2 เป็นข้อมูล
ส่วนในShowformที่อยู่ในSheet1 เรียกใช้ข้อมูลจากSheet2ครับ
ความต้องการของผมคือ combobox เลือกดูรหัสสินค้า แล้วtextbox ตัองโชว์ชื่อสินค้าครับ
แต่จุดที่มีปัญหาคือ combobox ดูรหัสสินค้าได้แค่ booke07 เมื่อเลือกดูรหัสสินค้า booka01 มันerrorเลยครับ
ทั้งๆที่code ผมได้กำหนดrange ครอบคลุมแล้วครับ Sheet2!b3:c11
ทำไมถึงเรียกข้อมูลbooka01ไม่ได้ครับ
Re: หัดใช้ ฟอร์ม ของ VBA ครับ
Posted: Sat Dec 25, 2010 10:58 am
by sdmania
เมื่อปิดโปรแกรมexcel แล้วเราเรียกขึ้นมาใหม่จะพบกับ แจ้งerror ดังภาพครับอาจารย์
Re: หัดใช้ ฟอร์ม ของ VBA ครับ
Posted: Sat Dec 25, 2010 11:30 am
by snasui
sdmania wrote:รบกวนอาจารย์ช่วยดู code ของtextBox ผมด้วยครับมีerror เกี่ยวกับVlookupครับ
ในsheet2 เป็นข้อมูล
ส่วนในShowformที่อยู่ในSheet1 เรียกใช้ข้อมูลจากSheet2ครับ
ความต้องการของผมคือ combobox เลือกดูรหัสสินค้า แล้วtextbox ตัองโชว์ชื่อสินค้าครับ
แต่จุดที่มีปัญหาคือ combobox ดูรหัสสินค้าได้แค่ booke07 เมื่อเลือกดูรหัสสินค้า booka01 มันerrorเลยครับ
ทั้งๆที่code ผมได้กำหนดrange ครอบคลุมแล้วครับ Sheet2!b3:c11
ทำไมถึงเรียกข้อมูลbooka01ไม่ได้ครับ
เพิ่ม
0 หรือ
False เข้าไปใน Vlookup ครับ เนื่องจากข้อมูลไม่ได้เรียงจากน้อยไปหามาก ดังนั้นส่วนประกอบสุดท้ายของ Vlookup จึงมีความจำเป็นครับ
Code: Select all
txtName.Value = Application.WorksheetFunction.VLookup(cboCode, myRange, 2, 0)
Re: หัดใช้ ฟอร์ม ของ VBA ครับ
Posted: Sat Dec 25, 2010 11:33 am
by snasui
sdmania wrote:
เมื่อปิดโปรแกรมexcel แล้วเราเรียกขึ้นมาใหม่จะพบกับ แจ้งerror ดังภาพครับอาจารย์
ต้องกำหนดให้โปรแกรมยอมรับการใช้งาน Macro ก่อนครับ โดย
1. เข้าเมนู Tools
2. เลือก Macro
3. คลิก Security
4. กำหนดเป็น Medium หรือ Low กรณีกำหนดเป็น Medium จะต้องคลิกยอมรับการใช้งานทุกครั้งที่เปิดไฟล์ที่มี Macro ครับ
Re: หัดใช้ ฟอร์ม ของ VBA ครับ
Posted: Mon Dec 27, 2010 2:21 pm
by sdmania
ขอบคุณครับอาจารย์
วันนี้ผมมีคำถามใหม่ครับ
--1 ผมอยากจะขอตัวอย่างการ addข้อมูล และdelข้อมูลครับ
การadd มีcode ที่addข้อมูลแล้ว จะบันทึกบันทัดต่อจากของเดิมเลยได้ไหมครับ
เช่น ของเดิมบันทึกข้อมูล แถว a2-a10 แล้ว หากมีการเปิดexcel ขึ้นมาใหม่ก็ add ต่อ เป็น a11ได้เลยน่ะครับ
ขอ code แบบvb ของ excel 2003 ครับอาจารย์
หรือ ถ้าอาจารย์จะมี ตัวอย่างโครงงาน ที่เขียนด้วยคำสั่งผ่านฟอร์ม vba ง่ายๆ ที่มีคำสั่ง addข้อมูล, delข้อมูล ,แก้ไขข้ัอมูล
ผมขอด้วยนะครับอาจารย์
ป.ล. ผมอยากทราบที่อยู่ ที่สามารถส่งของขวัญให้อาจารย์ได้ด้วยนะครับ ขอบคุณครับ
Re: หัดใช้ ฟอร์ม ของ VBA ครับ
Posted: Mon Dec 27, 2010 3:23 pm
by snasui
การ Add ข้อมูลเพิ่มจากข้อมูลเดิมในฟอรัมนี้ก็มีหลายตัวอย่างครับ ยกตัวอย่าง Code
การเพิ่มข้อมูลต่อจากข้อมูลเดิม สามารถ Search คำว่า Database ในฟอรัมนี้เพื่อดูตัวอย่างอื่น ๆ ครับ
ส่วนการ Delete Data จะยกตัวอย่างการลบบรรทัดสุดท้ายที่มีข้อมูลของ Sheet1 คอลัมน์ A ซึ่งจะต้องหาบรรทัดสุดท้ายของข้อมูลให้ได้ก่อนแล้วค่อย Delete ตัวอย่าง Code สำหรับการลบข้อมูลบรรทัดสุดท้ายเช่น
Code: Select all
Sheets("Sheet1").Range("A65536").End(xlUp).EntireRow.Delete
และขอบคุณสำหรับน้ำใจที่จะส่งของขวัญมาให้ ผมขอเปลี่ยนเป็นการ์ดอิเลคโทรนิคแทนครับ สามารถส่งมาได้ที่
snasui@gmail.com ครับ
Re: หัดใช้ ฟอร์ม ของ VBA ครับ
Posted: Tue Dec 28, 2010 9:28 am
by sdmania
ขอบคุณอาจารย์มากครับ
ขอถามคำถามใหม่เลยครับ
ขอวิธีใช้ Image ครับอาจารย์ และจะเป็นไปได้ไหมครับที่ภาพเก็บไว้ที่โฟลเดอร์อื่น ตัวexcelถูกเก็บไว้อีกโฟลเดอร์หนึ่ง จะสามารถเรียกข้ามโฟลเดอร์กันได้ไหมครับ
กรณีของผม เป็นบริษัทลิสซิ่ง 1รหัสลูกค้าต้องมีภาพถ่าย3ภาพ, ผมจำเป็นต้องย่อรูปให้มีขนาดของภาพเล็กลงสักประมาณใดไหมครับ เพราะ1รูปถ่ายก็ประมาณ 4 mb แม้ว่าปิดบัญชีกันแล้ว รูปก็ยังต้องอยู่ด้วยน่ะครับ
Re: หัดใช้ ฟอร์ม ของ VBA ครับ
Posted: Tue Dec 28, 2010 10:26 am
by snasui
รบกวนช่วยเปิดกระทู้ใหม่สำหรับคำถามนี้นะครับ เนื่องจากเป็นคนละเรื่องกับหัวข้อเดิม ขออภัยในความไม่สะดวกครับ
Re: หัดใช้ ฟอร์ม ของ VBA ครับ
Posted: Wed Nov 07, 2012 2:31 pm
by jindarat
อยากทราบว่าการเข้าไปทำAssign macro ของExcel2007 ลองคลิกขวาปรากฎข้อความว่ากำหนดแมโคร ข้อความนี้ใช่เปล่าค่ะเพราะทำแล้วให้มีปุ่มสร้าง บันทึก เท่านั้นไม่เห็นเหมือนในวีดีโอที่ให้ทำตามเลยค่ะจึงไม่เข้าใจว่าเหมือนกันหรือเปล่าระหว่างexcel2003กับ2007
Re: หัดใช้ ฟอร์ม ของ VBA ครับ
Posted: Wed Nov 07, 2012 3:22 pm
by snasui
jindarat wrote:อยากทราบว่าการเข้าไปทำAssign macro ของExcel2007 ลองคลิกขวาปรากฎข้อความว่ากำหนดแมโคร ข้อความนี้ใช่เปล่าค่ะ
กรณีสร้าง Object ใด ๆ ไว้ก่อนแล้ว หากไปคลิกขวาที่ Object นั้นจะขึ้นข้อความว่า Assign Macro สำหรับเมนูภาษาไทยน่าจะเป็น กำหนดแมโคร ทำนองนี้ครับ (ผมไม่ได้ใช้เมนูภาษาไทย) และเป็นเช่นนี้กับทุก Version ครับ