Category Archives: VBA Tips

Code สั่ง Print ผ่านวงแลน

ปัญหาใช้ Macro สั่ง Print ผ่านวงแลน เมื่อนำไฟล์งานไป print เครื่องอื่น กลับ print ไม่ได้ เนื่องจาก Printer ที่กำหนดค่าไว้ Macro เป็นอีก Port แต่เครื่องที่นำไฟล์ไปใช้เป็นอีก Port ซึ่ง Port ของ Printer ไม่ตรงกัน ตัวอย่างเครื่อง Print ที่กำหนดไว้ใน Macro เครื่องแรก >>\172.30.53.61\OKI MICROLINE 791

การลบ Style จำนวนมากในคราวเดียวด้วย VBA

กรณีทีใช้ Excel 2007 หรือ Version ที่ใหม่กว่าแล้ว Save กลับมาเป็น Excel 2003 หรือ Version ที่ต่ำกว่า บางครั้งจะพบปัญหาว่ามี Format มากเกินกว่าข้อจำกัดของ Excel 2003 หรือ Version ที่ต่ำกว่า ทำให้เปิดไฟล์ไม่ได้ โปรแกรมจะฟ้องว่า Too many difference formats เนื่องจาก Excel 2003 และ Vession ที่ต่ำกว่ามี Style ได้แค่ 4,000 แบบเท่านั้น

การเปลี่ยนชื่อไฟล์จำนวนมากด้วย VBA

กรณีทีเราต้องการเปลี่ยนชื่อไฟล์จำนวนมากและมีอยู่หลาย ๆ โฟลเดอร์คงจะเสียเวลาไม่น้อยหากต้องคีย์เปลี่ยนเอง การเปลี่ยนชื่อไฟล์ในลักษณะดังกล่าวสามารถใช้ VBA เข้ามาช่วยได้ครับ ตามตัวอย่างในภาพด้านล่าง คอลัมน์ A คือ Path ที่ต้องการเปลี่ยนชื่อไฟล์

การเพิ่ม Sheet อัตโนมัติตามรายชื่อที่ให้ไว้ล่วงหน้าด้วย VBA

💻 ในบางงานเราอาจจำเป็นต้องเพิ่มชีทหลาย ๆ ชีต และต้องการให้ชื่อชีตเป็นชื่อที่เรากำหนดไว้แล้วล่วงหน้า การทำเช่นนี้หากทำด้วย Manual จะใช้เวลามาก แต่หากใช้ VBA มาช่วยจะลดเวลาได้มากมายครับ ซึ่งจะขอยกตัวอย่างการใช้ VBA ในการเพิ่มชีตตามด้านล่าง แต่ต้องเตรียมข้อมูล

การตรวจสอบหมายเลข IP ว่าอยู่ใน Range ใดหรือไม่

สำหรับหมายเลข IP ซึ่งต้องมองทีละชุดไปนั้นไม่สามารถใช้การตรวจสอบได้เหมือนเลขธรรมดา ต้องตรวจสอบหมายเลขเป็นชุด ๆ ไป การตรวจสอบด้วยสูตรจึงทำได้ลำบากแต่สามารถใช้ VBA เข้ามาช่วยได้ครับ สำหรับตัวอย่าง Code ตามด้านล่างจะเป็นการนำ I3:I17 ไปตรวจสอบกับ C3:D7

การเรียงตัวอักษรในเซลล์

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

การ Resize Comment พร้อมกันทุก Sheet

กรณีที่มีปัญหากล่องความเห็นหรือกล่อง Comment จำนวนมากมีขนาดไม่พอดีกับข้อความ เช่นเล็กไปหรือใหญ่ไป หากต้องจัดการด้วยมือเพื่อให้พอดีกับข้อความแล้วจะทำเสียเวลาไปมากมายครับ จากปัญหาดังกล่าว เราสามารถใช้ Code VBA ตามด้านล่าง

การนำข้อมูลมาเชื่อมต่อกันโดยดูตามสี

ใน Microsoft Excel ไม่มีฟังก์ชั่นสำหรับการ List รายการโดยดูสีที่เข้าเงื่อนไข หากจะทำเช่นนั้นต้องอาศัย Add-ins เช่น Morefunc (Support Excel 2007 ลงไป) หรือ VBA เข้ามาจัดการ และเนื่องจากว่าการใช้ Morefunc ไม่ Support กับ Excel ทุกรุ่น

การควบคุม Option Button ที่สร้างขึ้นเองด้วย VBA

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

การแปลงข้อมูลแบบรายงานให้เป็น Database ด้วย VBA

กรณีที่ต้องทำงานกับข้อมูลที่ถูกแปลงมาเป็นรายงานแล้วนั้น ค่อนข้างจะยุ่งยากลำบากในการนำมาจัดการต่อ ไม่ว่าจะเป็นการค้นหาข้อมูล การจัดเรียง การนำไปแสดงเป็นกราฟ ฯลฯ ในหลายกรณีจึงจำเป็นต้องนำข้อมูลมาเรียงเสียใหม่ให้เป็น Database เพื่อให้ง่ายต่อการใช้งาน

การรวมข้อมูลจากหลายชีทด้วย VBA

กรณีต้องการรวมข้อมูลจากหลายชีทโดยนำข้อมูลมาต่อกันด้วยสูตรนั้นสามารถศึกษาได้จาก การนำข้อมูลจากหลาย Sheet มาต่อกันใน Sheet เดียว สำหรับที่จะนำเสนอต่อไปนี้เป็นนำข้อมูลจากหลายชีทมารวมในชีทเดียวกันด้วย VBA โดยทำการจัดเรียงใหม่และแทรกบรรทัดผลรวมของแต่ละชุดไว้ให้ด้วย ซึ่งข้อมูลต้นแหล่ง

การบันทึกข้อมูลแยกรายลูกค้าด้วย VBA

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