msgbox ใส่สีตัวอักษร vb excel
Excel vba กับการใส่สี ปรับขาด Font ให้กับ Msgbox
มีหลายคนพยายามที่จะใส่สีให้กับข้อความบน Msgbox บน Excel รวมถึงต้องการที่จะปรับขนาดตัวอักษร ที่อยู่บน Msgbox ให้ได้ขนาดต่างๆ แต่ก็ต้องพบกับความผิดหวัง เพราะเราไม่สามารถทำอย่างนั้นได้ เพราะว่า Msgbox ที่เราสั่งให้มันแสดงนั่นเป็น กล่องมาตรฐานที่ออกแบบมาไม่ให้เปลี่ยนแปลงได้...วิธีแก้ปัญหาสำหรับเรื่องนี้คือ เราต้องออกแบบกล่องเตือนขึ้นมาเอง หรือ สร้าง Msgbox ขึ้นมาเอง .....
จะสร้าง Msgbox ขึ้นมาเองได้อย่างไรน่ะหรือ...คำตอบสำหรับเรื่องนี้ง่ายมากๆครับ นั่นคือ สร้าง จาก Userform นั่นเอง สำหรับมือใหม่แล้วขอบอกว่ายังงงอยู่ แต่สำหรับคนที่เคยเขียนโปรแกรมมาแล้วจะเข้าใจทันที เพราะมันเป็นเรื่องที่เหล่านักเขียนโปรแกรมต่างๆเคยทำมาแล้วทั้งนั้น
เมื่อเราสร้าง Msgbox จาก Userform ขึ้นมาเรียบร้อยแล้ว สิ่งที่ต้องทำต่อไปคือ เขียน vba สั่งให้กล่องข้อความที่ออกแบบจาก Userform แสดงขึ้นมาตามที่เราต้องการ...เรามาดูวิธีการสร้างกันครับ ผมจะยกตัวอย่างให้ดูสัก 1 ตัวอย่าง
1 เปิด Microsoft Excel ขึ้นมา
2 ไปที่แท็บ Developer คลิ้กที่ tool เลือกปุ่ม button มาหนึ่งอัน แล้ววางบน worksheet จากนั้น คลิ้กขวาที่ button เลือก Edit text แล้วพิมพ์ข้อความว่า “แสดง msgbox ที่สร้างเอง” ลงไป ดูภาพด้านล่างประกอบ
3 กด alt+f11 เพื่อไปที่หน้าจอการออกแบบ form และ หน้าจอสำหรับเขียนโค้ดของ vba
4 คลิ้กขวาที่บริเวณพื้นที่ขาวๆโล่งๆฝั่ง vba project แล้วเลือกคำสั่ง Insert Userform จากนั้น นำ Commanbutton มาวาง 2 ปุ่ม บน userform ที่แทรกเข้ามา...คลิ้กที่ commandbutton ตัวแรกแล้วเปลี่ยน caption เป็น ok ใส่สีให้ข้อความในส่วนของ forecolor ส่วน Commandbutton อีกอันเปลี่ยน Caption เป็น Cancel ส่วนสีตัวอักษรก็เปลี่ยนได้ในส่วนของ forecolor เช่นเดียวกัน สามารถเลือกได้ว่าจะเปลี่ยนเป็นสีอะไรก็ได้ ดูภาพประกอบจากด้านล่างครับ
5 userform เราไม่ต้องออกแบบใหญ่หรอกครับ เอาประมาณตามภาพด้านล่างนี้ก็พอ...เพราะมีแค่สองปุ่มเอง
6 กด alt+f11 เพื่อกลับมาที่ Excel จากนั้น คลิก้ขวาที่ปุ่ม button ที่อยู่บน Worksheet ของ Excel แล้วเลือกคำสั่ง Assign Macro กล่องโต้ตอบเพื่อกำหนดโค้ดจะปรากฏขึ้นมา ให้เราคลิ้กที่ปุ่ม New
7 เมื่อเราคลิ้กที่ปุ่ม New แล้ว Excel จะพาเราไปที่หน้าต่างเขียนโค้ด และจะแทรกโค้ดสองบรรทัดนี้รอเราอยู่
Sub Button1_Click()
End Sub
ให้เราพิมพ์คำสั่งแทรกเข้าไป ซึ่งจะทำให้เราได้โค้ดที่สมบูรณ์ดังนี้
Sub Button1_Click()
UserForm1.Show vbModal
End Sub
8 กด alt+f11 เพื่อกลับมาที่หน้าจอ Excel อีกครั้ง
แล้วลองเลื่อนเม้าส์ไปบริเวณปุ่ม button ถ้ามันกลายเป็นรูปมือแสดงว่ามีการกำหนดโค้ดให้กับปุ่ม button เรียบร้อยแล้ว...ให้เราคลิ้กที่ปุ่ม button 1 ครั้งผลที่ได้จะเป็นดังภาพด้านล่างคับ
แค่นี้เราก็จะมี MSGbox ที่ใส่สีปรับขนาดตัวอักษรได้แล้วละครับ...ปุ่ม Ok เราสามารถเขียนโค้ดกำกับได้ว่า เมื่อกดที่ปุ่มนี้แล้วจะเกิดอะไรขึ้น...ปุ่ม Cancel ก็เช่นกันครับ เช่น เราอาจเขียนโค้ดประมาณว่า เมื่อคลิ้กที่ปุ่ม Cancel แล้วให้ ปิด Userform1 อย่างนี้เป็นต้นครับ....ลองเอาไปประยุกต์ดูน่ะครับไม่ยากเลย
Excel vba กับการใส่สี ปรับขาด Font ให้กับ Msgbox
จะสร้าง Msgbox ขึ้นมาเองได้อย่างไรน่ะหรือ...คำตอบสำหรับเรื่องนี้ง่ายมากๆครับ นั่นคือ สร้าง จาก Userform นั่นเอง สำหรับมือใหม่แล้วขอบอกว่ายังงงอยู่ แต่สำหรับคนที่เคยเขียนโปรแกรมมาแล้วจะเข้าใจทันที เพราะมันเป็นเรื่องที่เหล่านักเขียนโปรแกรมต่างๆเคยทำมาแล้วทั้งนั้น
เมื่อเราสร้าง Msgbox จาก Userform ขึ้นมาเรียบร้อยแล้ว สิ่งที่ต้องทำต่อไปคือ เขียน vba สั่งให้กล่องข้อความที่ออกแบบจาก Userform แสดงขึ้นมาตามที่เราต้องการ...เรามาดูวิธีการสร้างกันครับ ผมจะยกตัวอย่างให้ดูสัก 1 ตัวอย่าง
1 เปิด Microsoft Excel ขึ้นมา
2 ไปที่แท็บ Developer คลิ้กที่ tool เลือกปุ่ม button มาหนึ่งอัน แล้ววางบน worksheet จากนั้น คลิ้กขวาที่ button เลือก Edit text แล้วพิมพ์ข้อความว่า “แสดง msgbox ที่สร้างเอง” ลงไป ดูภาพด้านล่างประกอบ
3 กด alt+f11 เพื่อไปที่หน้าจอการออกแบบ form และ หน้าจอสำหรับเขียนโค้ดของ vba
4 คลิ้กขวาที่บริเวณพื้นที่ขาวๆโล่งๆฝั่ง vba project แล้วเลือกคำสั่ง Insert Userform จากนั้น นำ Commanbutton มาวาง 2 ปุ่ม บน userform ที่แทรกเข้ามา...คลิ้กที่ commandbutton ตัวแรกแล้วเปลี่ยน caption เป็น ok ใส่สีให้ข้อความในส่วนของ forecolor ส่วน Commandbutton อีกอันเปลี่ยน Caption เป็น Cancel ส่วนสีตัวอักษรก็เปลี่ยนได้ในส่วนของ forecolor เช่นเดียวกัน สามารถเลือกได้ว่าจะเปลี่ยนเป็นสีอะไรก็ได้ ดูภาพประกอบจากด้านล่างครับ
5 userform เราไม่ต้องออกแบบใหญ่หรอกครับ เอาประมาณตามภาพด้านล่างนี้ก็พอ...เพราะมีแค่สองปุ่มเอง
6 กด alt+f11 เพื่อกลับมาที่ Excel จากนั้น คลิก้ขวาที่ปุ่ม button ที่อยู่บน Worksheet ของ Excel แล้วเลือกคำสั่ง Assign Macro กล่องโต้ตอบเพื่อกำหนดโค้ดจะปรากฏขึ้นมา ให้เราคลิ้กที่ปุ่ม New
7 เมื่อเราคลิ้กที่ปุ่ม New แล้ว Excel จะพาเราไปที่หน้าต่างเขียนโค้ด และจะแทรกโค้ดสองบรรทัดนี้รอเราอยู่
Sub Button1_Click()
End Sub
ให้เราพิมพ์คำสั่งแทรกเข้าไป ซึ่งจะทำให้เราได้โค้ดที่สมบูรณ์ดังนี้
Sub Button1_Click()
UserForm1.Show vbModal
End Sub
8 กด alt+f11 เพื่อกลับมาที่หน้าจอ Excel อีกครั้ง
แล้วลองเลื่อนเม้าส์ไปบริเวณปุ่ม button ถ้ามันกลายเป็นรูปมือแสดงว่ามีการกำหนดโค้ดให้กับปุ่ม button เรียบร้อยแล้ว...ให้เราคลิ้กที่ปุ่ม button 1 ครั้งผลที่ได้จะเป็นดังภาพด้านล่างคับ
แค่นี้เราก็จะมี MSGbox ที่ใส่สีปรับขนาดตัวอักษรได้แล้วละครับ...ปุ่ม Ok เราสามารถเขียนโค้ดกำกับได้ว่า เมื่อกดที่ปุ่มนี้แล้วจะเกิดอะไรขึ้น...ปุ่ม Cancel ก็เช่นกันครับ เช่น เราอาจเขียนโค้ดประมาณว่า เมื่อคลิ้กที่ปุ่ม Cancel แล้วให้ ปิด Userform1 อย่างนี้เป็นต้นครับ....ลองเอาไปประยุกต์ดูน่ะครับไม่ยากเลย