Recently in มิตรภาพ Category

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

การแชร์ไฟล์เพื่อใช้งานหลายๆเครื่อง เมื่ออีกเครื่องหนึ่งจะเปิดใช้บ้าง ในขณะที่เครื่องแรกกำลังเปิดอยู่ จะมีข้อความเตือนขึ้นมา ก็ไม่เป็นปัญหามากนัก แต่บางครั้งเจ้าของไม่รู้ตัว แต่ไฟล์ค้างอยู่ข้างในเพราะถูกเปิดแบบซ่อน อันหลังนี่หายากมาก แต่เดิมแก้ปัญหาด้วยการให้พนักงานทั้งบริษัทออกจากเอ็กเซลแล้วค่อยเข้าใหม่ วันนี้เลยเข้าค้นข้อมูลในอินเตอร์เน็ต พบบทความประเภทนี้(ในภาษาอังกฤษ)เยอะมาก แต่ส่วนมากลึกซึ้งเกินภูมิปัญญาชาวบ้าน(อย่างผม)มาก จึงได้ทดลองเอาบางส่วนมาประยุกต์ใช้ ทดลองแล้วได้ผลดีทีเดียว

เห็นปุ่มกดตามเว็บต่างๆแล้วชอบใจ เวลาชี้เม้าส์หรือคลิกเม้าส์แล้ว สามารถเปลี่ยนสี เปลี่ยนขนาด วูบวาบได้น่าสนใจดี จึงได้ลองหาข้อมูลต่างๆจากอินเตอร์เน็ต ได้มาประยุกต์ใช้ง่ายๆตามนี้ครับ

การจะสร้างตารางเพื่อบันทึกอะไรสักอย่างหนึ่ง สิ่งที่จะขาดไม่ได้เลย ก็คงจะเป็นคอลัมน์"ลำดับที่"นั่นเองครับ ลองดูตัวอย่างต่อไปนี้ครับ

หยิบยกเอามาบันทึกไว้ เพื่อเตือนตาสอนใจตัวเองครับ...!

เรื่องของเรื่องก็คือ ผมมีภาระกิจต้องสร้าง UserForm ขึ้นมา เพื่ออ่านค่าจากฐานข้อมูล มารอให้พนักงานได้เลือกใช้ เป็นการลดความผิดพลาด จากการพิมพ์ผิดพิมพ์ถูก หน้าตาก็ประมาณนี้ครับ
งานบางอย่างในเอ็กเซล เช่นตารางรายชื่อพนักงาน ตารางข้อมูลต่างๆ หากมีแต่ข้อมูล บางครั้งก็ดูไม่น่าสนใจสักเท่าไร จะดีขึ้นมาอีกนิด ถ้าเอารูปมาวางไว้ในตารางนั้นด้วย โดยวิธีการแทรกรูปธรรมดาทั่วไปนั่นเอง

แต่ปัญหาก็คือ ความสูงของแต่ละบรรทัดในชีทงานก็แค่นิดเดียว คงจะแสดงรูปได้กระจิ๋วหริว หากจะใส่รูป 2 นิ้วสักรูป ก็ต้องขยายบรรทัดตามไปด้วย ตารางที่ได้คงไม่น่าดูเท่าไร

พอดีว่าต้องมีเรื่องค้นหา เกี่ยวกับ picture ใน excel ก็ใช้บริการของ google อีกนั่นละ มีข้อมูลต่างๆนาๆให้ศึกษามากมาย เลยหยิบมาวิธีนึง น่าสนใจมากครับ ลองตามมาดูกัน
ฟังก์ชั่น indirect ทำงานได้กับ Workbook ที่กำลังเปิดอยู่เท่านั้น แต่หากต้องมีการอ้างถึงข้อมูลกับ Workbook ที่ปิดอยู่ด้วย จำเป็นที่จะต้องมีตัวช่วยครับ...

ก่อนอื่น ไปดาวน์โหลดฟังก์ชั่นเสริมของ Excel มาจาก http://xcell05.free.fr/downloads/Morefunc.zip ก็จะได้ไฟล์ .rar มา 1 ไฟล์ เมื่อแตกไฟล์ออกมาก็จะพบกับไฟล์ setup.exe เมื่อติดตั้งเสร็จแล้ว ก็จะเข้าไปรวมกับฟังก์ชั่นเดิมของ Excel ไว้ให้เลือกใช้ได้ทันที รายละเอียดทั้งหมดของ Morefunc.zip สามารถค้นหาดูได้จากอินเตอร์เน็ตครับ มีข้อมูลมากมายทีเดียว แต่ที่ผมจะเอามาให้ดู เป็นฟังก์ชั่น indirect.ext ที่ใช้งานได้เหมือนกับ indirect ตัวเดิม แต่ตัวนี้มี .ext ต่อท้ายด้วย ซึ่งความแตกต่างก็คือ สามารถใช้งานกับ Workbook ที่ปิดอยู่ได้ด้วยครับ

เมื่อมีการออกแบบระบบงานต่างๆบน Excel โดยเฉพาะที่ต้องทำงานร่วมกับ VBA มักต้องมีการออกแบบเมนูเฉพาะงานนั้นๆขึ้นมาใหม่ ผมเองก็เช่นกันครับ เมนูที่ผมเคยใช้งานอยู่ จะออกแบบไว้ในลักษณะนี้ครับ

menu_01.jpg

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

บังเอิญว่า ไปพบคำถามในบอร์ดพันทิปมา ว่าอยากได้งานประมาณว่า เมื่อพิมพ์ข้อมูลลงใน A1 ให้ B1 แสดงวันที่และเวลาขณะนั้นทันที และเมื่อพิมพ์ A2, A3, ... ก็ให้ B2, B3, ... แสดงเวลาจริงของแต่ละบรรทัดในทันที ผมคิดในใจว่า "หมูๆ" เลยเปิด Excel ขึ้นมา ที่ B1 พิมพ์สูตรนี้ลงไป

=IF(A1<>"",NOW(),"")

จากนั้นก็ปรับ Format ของ B1 ให้เป็น

d mm yyyy [$-1000000]h:mm:ss AM/PM;@

เพื่อการแสดงผลเป็น วันที่ เดือน ปี ชั่วโมง นาที วินาที เช้า/บ่าย เรียกว่าโกงเวลาไม่ได้แม้แต่วินาทีเดียวกันเลยเชียว...

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

ถ้าต้องการให้มีการพิมพ์ซ้ำด้านล่างในทุกๆหน้าล่ะ? ถ้าเป็นข้อความธรรมดาก็ง่ายขึ้นมาหน่อย แต่ถ้าต้องการมีตาราง มีเส้นกรอบติดไปด้วย อันนี้ต้องใช้วิธีพลิกแพลงสักเล็กน้อย...

About this Archive

This page is a archive of recent entries in the มิตรภาพ category.

วานิชย์ is the next category.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.32-en