งานเล็กๆบางงานใน Excel สามารถใช้ InputBox แทน UserForm ได้
|"ลุงไม้..."|123it.co.nr|เรื่องทั้งหมด|เรื่องที่แล้ว |เรื่องต่อไป|
การออกแบบ Userform เพื่อทำงานในแต่ละงานนั้น ก็นับว่าเป็นสิ่งที่ถูกต้องแล้วละครับ แต่บางที กับงานเล็กๆน้อยๆ เราก็อาจจะพลิกแพลงเอาวัตถุดิบที่มีอยู่แล้ว หยิบจับมาใช้งานได้เหมือนกัน ลองมาดูตัวอย่างงาน LogIn เข้าทำงานในระบบเล็กๆที่ผมลองทำขึ้นใช้งานกันดู
รูปแบบปกติของ InputBox มักเป็นแบบนี้
แต่เมื่อลองปรับแต่งพลิกแพลงเพียงเล็กน้อย กับพนักงานสัก 5 ชื่อ สามารถให้แสดงผลแบบนี้ได้
จากรูปข้างบน ผมปรับแต่งการแสดงผลของ InputBox ด้วยโค้ดนี้
Dim UserEntry, xText xText = "001 สมชาย ใจงาม & Chr(10) & _ "002 สมหญิง แจ่มจันทร์" & Chr(10) & _ "003 ประชัน บุญดี" & Chr(10) & _ "004 ªชัยพร จรัสศรี" & Chr(10) & _ "005 ประจวบ คล้ายคลึง" UserEntry = InputBox("โปรดระบุรหัสพนักงาน..." & Chr(10) & _
"---------------------------------------------------------------" & Chr(10) & xText, "UserEntry") ซึ่งถ้าจำนวนพนักงานน้อยๆคน ก็สามารถใช้ได้ไม่มีปัญหา แต่ถ้าหากว่าพนักงานมากๆหน่อย อย่างเช่นที่ทำงานผมนั้น ต้องมีการล็อคอินประมาณเกือบ 30 คน แถมยังเข้าๆออกๆบ่อยเสียด้วย เลยต้องหาวิธีที่ยืดหยุ่นกว่านี้
1. พิมพ์รายชื่อที่ต้องการลงในชีทงานไว้ก่อน ประมาณนี้
2. โค้ดในส่วนของการควบคุม InputBox จะเปลี่ยนมาอ่านรายชื่อในชีทงานแทน ด้วยโค้ดแบบนี้
Dim UserEntry, xText, i As Integer With Sheets("username") i = 2 Do Until Range("a" & i).Text = "" xText = xText & Chr(10) & .Range("b" & i).Text & " " & .Range("c" & i).Text i = i + 1 Loop End With
UserEntry = InputBox("โปรดระบุรหัสพนักงาน..." & Chr(10) & _
"---------------------------------------------------------------" & Chr(10) & xText, "UserEntry")
3. เมื่อรันโค้ดงานออกมา ก็จะได้หน้าตาของ InputBox เป็นแบบนี้
จะเห็นว่า งานที่ได้ เหมือนกับสร้างจาก UserForm กันเลยทีเดียว ข้อดีอีกอย่างก็คือ การให้พนักงานพิมพ์เลขรหัสลงไป จะให้ความถูกต้องได้มากกว่าการพิมพ์ชื่อ/นามสกุลลงไปเอง ซึ่งอาจจะเคาะผิดเคาะถูก พิมพ์ขาดๆเกินๆอยู่บ่อยๆ
แต่การใช้ InputBox แบบนี้ จะมีข้อจำกัดอยู่บ้างเล็กน้อย ก็คือจำนวนตัวอักษรทั้งหมดที่สามารถแสดงได้ โดยจำกัดอยู่ที่ 256 ตัวอักษร (ถ้าจำไม่ผิดนะ แต่ถ้าผิดก็ช่วยแนะนำด้วยนะครับ) ดังนั้น ถ้าเป็นงานใหญ่ๆ คนมากๆ ก็คงต้องออกแบบ UserForm กันจริงๆ แต่ถ้างานเล็กๆน้อยๆบางงาน แค่นี้ก็หรูแล้ว แถมยังประหยัดเวลาและทรัพยากรเครื่องได้อีกด้วยครับ
Create Date : 18 ธันวาคม 2550 |
Last Update : 22 ธันวาคม 2550 12:26:43 น. |
|
2 comments
|
Counter : 3317 Pageviews. |
|
|
|
|
ขอบคุณมากค่า