: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 ครับ

ฟอรัมถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถามและตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น เนื่องจากเมื่อแปลเป็นภาษาต่างประเทศแล้วจะให้ความหมายผิดไปจากที่ควรจะเป็น
  2. ห้ามถามโดยระบุชื่อผู้ตอบและต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. กรุณาอธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. กรุณาแนบไฟล์ตัวอย่างพร้อมแสดงคำตอบที่ถูกต้องมาในไฟล์ด้วยเพื่อให้ง่ายต่อการทำความเข้าใจและสะดวกต่อการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่นที่อาจจะถูกลบทิ้งไปโดยต้นทางในภายหลัง นอกจากนี้ไม่ควรแนบไฟล์ที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. กรณีเป็นคำถามเกี่ยวกับ Programming เช่น VBA, VB.Net, C#, SQL ฯลฯ ต้องลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน กรุณาโพสต์ Code ให้แสดงเป็น Code คือเปิดด้วย [code] และปิดด้วย [/code] ตัวอย่างเช่น [code]dim r as range[/code] เพื่อให้แตกต่างจากข้อความทั่วไป สะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. กรุณาแจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

หัดใช้ ฟอร์ม ของ VBA ครับ

#1

Post by sdmania »

ผมไปซื้อหนังสือมาเพื่อหัดใช้ user form ครับอาจารย์ แต่บางคำสั่งผมทำตามหนังสือแล้วหาคำสั่งไม่เจอ รบกวนอาจารย์ช่วยสอนหน่อยครับ
You do not have the required permissions to view the files attached to this post.
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

Re: หัดใช้ ฟอร์ม ของ VBA ครับ

#2

Post 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
คลิกเมาส์บริเวณเวิร์กชีต
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

Re: หัดใช้ ฟอร์ม ของ VBA ครับ

#3

Post by sdmania »

อ้อ ที่กรอกข้อมูลนี่ เค้าจะสอนเรื่องทำcombobox กับเก็บข้อมูลลงexcel น่ะครับ แต่ผมติดตรง ติดต่อShowFormไม่ได้ครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: หัดใช้ ฟอร์ม ของ VBA ครับ

#4

Post by snasui »

:D การ Show Form ตามที่ถามมานั้นน่าจะเป็นลักษณะว่าให้เราวาด Object แล้วเปลี่ยนข้อความใน Object เป็นคำว่า Show Form หากเรามีการเขียน Code เอาไว้แล้ว โปรแกรมจะให้เราเลือกเลยว่าหากคลิก Object นี้ให้ไป Execute คำสั่งใด หรือที่เรียกว่าการ Assign Macro

ดูตัวอย่างการวาด Object การ Assign Macro และการคลิก Object เพื่อ Show Form ตามด้านล่างครับ
You do not have the required permissions to view the files attached to this post.
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

Re: หัดใช้ ฟอร์ม ของ VBA ครับ

#5

Post by sdmania »

รบกวนอาจารย์ช่วยดู code ของtextBox ผมด้วยครับมีerror เกี่ยวกับVlookupครับ

ในsheet2 เป็นข้อมูล
ส่วนในShowformที่อยู่ในSheet1 เรียกใช้ข้อมูลจากSheet2ครับ

ความต้องการของผมคือ combobox เลือกดูรหัสสินค้า แล้วtextbox ตัองโชว์ชื่อสินค้าครับ
แต่จุดที่มีปัญหาคือ combobox ดูรหัสสินค้าได้แค่ booke07 เมื่อเลือกดูรหัสสินค้า booka01 มันerrorเลยครับ
ทั้งๆที่code ผมได้กำหนดrange ครอบคลุมแล้วครับ Sheet2!b3:c11

ทำไมถึงเรียกข้อมูลbooka01ไม่ได้ครับ :mrgreen:
You do not have the required permissions to view the files attached to this post.
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

Re: หัดใช้ ฟอร์ม ของ VBA ครับ

#6

Post by sdmania »

:mrgreen:
เมื่อปิดโปรแกรมexcel แล้วเราเรียกขึ้นมาใหม่จะพบกับ แจ้งerror ดังภาพครับอาจารย์
You do not have the required permissions to view the files attached to this post.
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: หัดใช้ ฟอร์ม ของ VBA ครับ

#7

Post by snasui »

sdmania wrote:รบกวนอาจารย์ช่วยดู code ของtextBox ผมด้วยครับมีerror เกี่ยวกับVlookupครับ

ในsheet2 เป็นข้อมูล
ส่วนในShowformที่อยู่ในSheet1 เรียกใช้ข้อมูลจากSheet2ครับ

ความต้องการของผมคือ combobox เลือกดูรหัสสินค้า แล้วtextbox ตัองโชว์ชื่อสินค้าครับ
แต่จุดที่มีปัญหาคือ combobox ดูรหัสสินค้าได้แค่ booke07 เมื่อเลือกดูรหัสสินค้า booka01 มันerrorเลยครับ
ทั้งๆที่code ผมได้กำหนดrange ครอบคลุมแล้วครับ Sheet2!b3:c11

ทำไมถึงเรียกข้อมูลbooka01ไม่ได้ครับ :mrgreen:
:D เพิ่ม 0 หรือ False เข้าไปใน Vlookup ครับ เนื่องจากข้อมูลไม่ได้เรียงจากน้อยไปหามาก ดังนั้นส่วนประกอบสุดท้ายของ Vlookup จึงมีความจำเป็นครับ

Code: Select all

txtName.Value = Application.WorksheetFunction.VLookup(cboCode, myRange, 2, 0)
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: หัดใช้ ฟอร์ม ของ VBA ครับ

#8

Post by snasui »

sdmania wrote: :mrgreen:
เมื่อปิดโปรแกรมexcel แล้วเราเรียกขึ้นมาใหม่จะพบกับ แจ้งerror ดังภาพครับอาจารย์
:D ต้องกำหนดให้โปรแกรมยอมรับการใช้งาน Macro ก่อนครับ โดย

1. เข้าเมนู Tools
2. เลือก Macro
3. คลิก Security
4. กำหนดเป็น Medium หรือ Low กรณีกำหนดเป็น Medium จะต้องคลิกยอมรับการใช้งานทุกครั้งที่เปิดไฟล์ที่มี Macro ครับ
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

Re: หัดใช้ ฟอร์ม ของ VBA ครับ

#9

Post by sdmania »

:mrgreen: ขอบคุณครับอาจารย์
วันนี้ผมมีคำถามใหม่ครับ
--1 ผมอยากจะขอตัวอย่างการ addข้อมูล และdelข้อมูลครับ
การadd มีcode ที่addข้อมูลแล้ว จะบันทึกบันทัดต่อจากของเดิมเลยได้ไหมครับ

เช่น ของเดิมบันทึกข้อมูล แถว a2-a10 แล้ว หากมีการเปิดexcel ขึ้นมาใหม่ก็ add ต่อ เป็น a11ได้เลยน่ะครับ
ขอ code แบบvb ของ excel 2003 ครับอาจารย์


หรือ ถ้าอาจารย์จะมี ตัวอย่างโครงงาน ที่เขียนด้วยคำสั่งผ่านฟอร์ม vba ง่ายๆ ที่มีคำสั่ง addข้อมูล, delข้อมูล ,แก้ไขข้ัอมูล
ผมขอด้วยนะครับอาจารย์ :mrgreen:


ป.ล. ผมอยากทราบที่อยู่ ที่สามารถส่งของขวัญให้อาจารย์ได้ด้วยนะครับ ขอบคุณครับ
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: หัดใช้ ฟอร์ม ของ VBA ครับ

#10

Post by snasui »

:D การ Add ข้อมูลเพิ่มจากข้อมูลเดิมในฟอรัมนี้ก็มีหลายตัวอย่างครับ ยกตัวอย่าง Code การเพิ่มข้อมูลต่อจากข้อมูลเดิม สามารถ Search คำว่า Database ในฟอรัมนี้เพื่อดูตัวอย่างอื่น ๆ ครับ

ส่วนการ Delete Data จะยกตัวอย่างการลบบรรทัดสุดท้ายที่มีข้อมูลของ Sheet1 คอลัมน์ A ซึ่งจะต้องหาบรรทัดสุดท้ายของข้อมูลให้ได้ก่อนแล้วค่อย Delete ตัวอย่าง Code สำหรับการลบข้อมูลบรรทัดสุดท้ายเช่น

Code: Select all

Sheets("Sheet1").Range("A65536").End(xlUp).EntireRow.Delete
และขอบคุณสำหรับน้ำใจที่จะส่งของขวัญมาให้ ผมขอเปลี่ยนเป็นการ์ดอิเลคโทรนิคแทนครับ สามารถส่งมาได้ที่ snasui@gmail.com ครับ
User avatar
sdmania
Bronze
Bronze
Posts: 320
Joined: Tue Sep 07, 2010 11:38 am
Location: นครสวรรค์

Re: หัดใช้ ฟอร์ม ของ VBA ครับ

#11

Post by sdmania »

ขอบคุณอาจารย์มากครับ

ขอถามคำถามใหม่เลยครับ
ขอวิธีใช้ Image ครับอาจารย์ และจะเป็นไปได้ไหมครับที่ภาพเก็บไว้ที่โฟลเดอร์อื่น ตัวexcelถูกเก็บไว้อีกโฟลเดอร์หนึ่ง จะสามารถเรียกข้ามโฟลเดอร์กันได้ไหมครับ :shock:

กรณีของผม เป็นบริษัทลิสซิ่ง 1รหัสลูกค้าต้องมีภาพถ่าย3ภาพ, ผมจำเป็นต้องย่อรูปให้มีขนาดของภาพเล็กลงสักประมาณใดไหมครับ เพราะ1รูปถ่ายก็ประมาณ 4 mb แม้ว่าปิดบัญชีกันแล้ว รูปก็ยังต้องอยู่ด้วยน่ะครับ :(
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: หัดใช้ ฟอร์ม ของ VBA ครับ

#12

Post by snasui »

:D รบกวนช่วยเปิดกระทู้ใหม่สำหรับคำถามนี้นะครับ เนื่องจากเป็นคนละเรื่องกับหัวข้อเดิม ขออภัยในความไม่สะดวกครับ :P
jindarat
Member
Member
Posts: 11
Joined: Tue Sep 11, 2012 4:15 pm

Re: หัดใช้ ฟอร์ม ของ VBA ครับ

#13

Post by jindarat »

อยากทราบว่าการเข้าไปทำAssign macro ของExcel2007 ลองคลิกขวาปรากฎข้อความว่ากำหนดแมโคร ข้อความนี้ใช่เปล่าค่ะเพราะทำแล้วให้มีปุ่มสร้าง บันทึก เท่านั้นไม่เห็นเหมือนในวีดีโอที่ให้ทำตามเลยค่ะจึงไม่เข้าใจว่าเหมือนกันหรือเปล่าระหว่างexcel2003กับ2007
User avatar
snasui
Site Admin
Site Admin
Posts: 30917
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Excel Ver: 2010, 365
Contact:

Re: หัดใช้ ฟอร์ม ของ VBA ครับ

#14

Post by snasui »

:D
jindarat wrote:อยากทราบว่าการเข้าไปทำAssign macro ของExcel2007 ลองคลิกขวาปรากฎข้อความว่ากำหนดแมโคร ข้อความนี้ใช่เปล่าค่ะ
กรณีสร้าง Object ใด ๆ ไว้ก่อนแล้ว หากไปคลิกขวาที่ Object นั้นจะขึ้นข้อความว่า Assign Macro สำหรับเมนูภาษาไทยน่าจะเป็น กำหนดแมโคร ทำนองนี้ครับ (ผมไม่ได้ใช้เมนูภาษาไทย) และเป็นเช่นนี้กับทุก Version ครับ
Post Reply