ในบทช่วยสอนนี้ เราจะเรียนรู้วิธีใช้ Visual Basic for Applications (VBA) เพื่อแก้ไขขนาดและสไตล์ข้อความในเซลล์ Excel ตามเนื้อหาของเซลล์ บทช่วยสอนนี้ใช้กับ Excel 365, 2021, 2019 และ 2016
เบื้องต้น
หากคุณยังใหม่ต่อการพัฒนา Excel VBA ฉันขอแนะนำว่าก่อนที่จะผ่านบทช่วยสอน คุณจะต้องพิจารณาถึงแมโครไพรเมอร์ Excel VBA ของเราก่อน
ก่อนที่คุณจะเริ่มเขียนโค้ด คุณควรเปิดใช้งานแท็บนักพัฒนาของคุณบน Excelใน Ribbon มิฉะนั้น คุณจะไม่สามารถเข้าถึง Visual Basic Editor ของคุณได้
เปลี่ยนคุณสมบัติข้อความเซลล์ Excel ของคุณด้วย VBA
กำหนดสเปรดชีตของคุณ
เราจะเริ่มต้นด้วยการกำหนดสเปรดชีต Excel ที่เราจะใช้เป็นตัวอย่าง อย่าลังเลที่จะใช้มันเพื่อทำตามบทช่วยสอนนี้
- เปิด Microsoft Excel และสร้างสมุดงาน Excel ที่เปิดใช้งานมาโครใหม่ ( .xlsm ) ชื่อExcel_Macros.xlsm
- บันทึกสเปรดชีตของคุณในไดรฟ์ในเครื่อง
- ใน แผ่นงาน Sheet1ให้เพิ่มตารางด้านล่าง:

- ตอนนี้ จาก Ribbon ให้กดFormulas
- จาก นั้นกดDefine Name
- กำหนด Named Range ที่คุณจะใช้รหัส VBA ของคุณดังที่แสดงด้านล่างและกดOK
![วิธีตั้งค่าสีแบบอักษรข้อความ Excel ด้วย VBA วิธีตั้งค่าสีแบบอักษรข้อความ Excel ด้วย VBA]()
ใช้คุณสมบัติ Cell.Font VBA เพื่อเปลี่ยนสีแบบอักษรและสไตล์
- ย้ายไปที่แท็บนักพัฒนา
- ถัดไปไปข้างหน้าและกดปุ่มVisual Basic
- ทางด้านซ้ายมือProject Explorerให้ไฮไลต์ โปรเจ็กต์ Excel_Macros.xlsmจากนั้นกดInsertแล้วเลือกModule
- โมดูล VBA ใหม่ที่ชื่อModule1จะถูกสร้างขึ้น
- ไปข้างหน้าและวางรหัสต่อไปนี้ในโมดูลที่สร้างขึ้นใหม่:
Sub Color_Cell_Text_Condition()
Dim MyCell As Range
Dim StatValue As String
Dim StatusRange As Range
Set StatusRange = Range("Completion_Status")
'loop through all cells in the range
For Each MyCell In StatusRange
StatValue = MyCell.Value
'modify the cell text values as needed.
Select Case StatValue
'green
Case "Progressing"
With MyCell.Font
.Color = RGB(0, 255, 0)
.Size = 14
.Bold = True
End With
'orange
Case "Pending Feedback"
With MyCell.Font
.Color = RGB(255, 141, 0)
.Size = 14
.Bold = True
End With
'red
Case "Stuck"
With MyCell.Font
.Color = RGB(255, 0, 0)
.Size = 14
.Bold = True
End With
End Select
Next MyCell
End Sub
- กด ปุ่ม บันทึกในโปรแกรมแก้ไข Visual Basic ของคุณ
- ตอนนี้ให้กดRunจากนั้นเลือกRun Sub/UserForm (หรือเพียงแค่กด F5)
- ย้ายไปยัง แผ่นงาน Sheet1 ของคุณ และสังเกตการเปลี่ยนแปลง รายการตารางของคุณได้รับรหัสสีหลายรหัสตามข้อความ (โดยใช้ฟังก์ชันสี RGB) และเรายังตั้งค่าให้ข้อความเป็นตัวหนาและเพิ่มขนาด
![วิธีตั้งค่าสีแบบอักษรข้อความ Excel ด้วย VBA วิธีตั้งค่าสีแบบอักษรข้อความ Excel ด้วย VBA]()
- หากคุณยังไม่ได้บันทึกรหัส ให้กดปุ่มบันทึก (หรือ Ctrl+S) จากนั้นบันทึกเวิร์กบุ๊กของคุณด้วย
เข้าถึง VBA Macro . ของคุณ
- โปรดทราบว่าโค้ดของคุณพร้อมให้คุณเรียกใช้เสมอจากคำสั่ง Macros ที่อยู่ในแท็บมุมมอง (หรืออีกวิธีหนึ่งคือใน Developer | Macros)
![วิธีตั้งค่าสีแบบอักษรข้อความ Excel ด้วย VBA วิธีตั้งค่าสีแบบอักษรข้อความ Excel ด้วย VBA]()
โบนัส: สไตล์เซลล์
Excel นำเสนอความสามารถในการสร้าง "สไตล์" ของเซลล์ สามารถพบได้ใน Home Ribbon > สไตล์:
![รูปแบบตัวอักษร Excel vba]()
สไตล์ช่วยให้คุณสามารถบันทึกการจัดรูปแบบเซลล์ที่คุณต้องการได้ จากนั้นกำหนดสไตล์นั้นให้กับเซลล์ใหม่ จากนั้นการจัดรูปแบบเซลล์ทั้งหมดจะถูกนำมาใช้ทันที รวมถึงขนาดแบบอักษร สีของเซลล์ สถานะการป้องกันเซลล์ และอื่นๆ ที่มีให้ใช้งานจากเมนูการจัดรูปแบบเซลล์:
![เมนูการจัดรูปแบบเซลล์ Excel]()
โดยส่วนตัวแล้ว สำหรับโมเดลหลายๆ รุ่นที่ฉันทำงานอยู่ ฉันมักจะสร้างสไตล์เซลล์ "อินพุต":
Range("a1").Style = "อินพุต"
การใช้สไตล์ทำให้คุณสามารถระบุประเภทเซลล์บนเวิร์กชีตของคุณได้อย่างง่ายดาย ตัวอย่างด้านล่างนี้จะวนซ้ำเซลล์ทั้งหมดในแผ่นงานและเปลี่ยนเซลล์ใดๆ ด้วย Style = “Input” เป็น “InputLocked”:
Dim Cell เป็นช่วง
สำหรับแต่ละเซลล์ใน ActiveSheet.Cells
ถ้า Cell.Style = "อินพุต" จากนั้น Cell.Style = "InputLocked"
สิ้นสุดถ้า
เซลล์ถัดไป