วันจันทร์ที่ 5 พฤษภาคม พ.ศ. 2557

Excel vba กับการใส่สี ปรับขาด Font ให้กับ Msgbox msgbox ใส่สีตัวอักษร vb excel

msgbox ใส่สีตัวอักษร vb excel Excel vba กับการใส่สี ปรับขาด Font ให้กับ Msgbox มีหลายคนพยายามที่จะใส่สีให้กับข้อความบน Msgbox บน Excel ... thumbnail 1 summary
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 อย่างนี้เป็นต้นครับ....ลองเอาไปประยุกต์ดูน่ะครับไม่ยากเลย