เจาะลึกสถาปัตยกรรม Table Styles ใน Microsoft Wordเจาะลึกสถาปัตยกรรม Table Styles ใน Microsoft Word

เจาะลึกสถาปัตยกรรม Table Styles ใน Microsoft Word: ระบบสี Tint/Shade, แกลเลอรีสไตล์ และ Conditional Formatting

ความสามารถในการจัดรูปแบบตารางอัตโนมัติของ Microsoft Word ไม่ได้เกิดขึ้นจากการสุ่มค่าสีหรือลงสีแบบตายตัว แต่ทำงานผ่านสถาปัตยกรรม Office Open XML (OOXML / ECMA-376) ที่ผูกโยงระหว่างโครงสร้างข้อมูล เวกเตอร์การคำนวณสี และแฟล็กเงื่อนไขการแสดงผลอย่างเป็นระบบ

การเข้าใจกลไกทั้ง 3 ส่วนนี้ ช่วยให้การออกแบบ Master Template และการควบคุมเอกสารระดับองค์กรทำงานได้อย่างแม่นยำและไม่ผิดเพี้ยน


ระบบโครงสร้างสี (Theme Color & Tints/Shades)

ตารางสำเร็จรูปใน Word จะไม่บันทึกรหัสสีแบบค่าคงที่ (Hardcoded Hex/RGB) ลงไปในเซลล์โดยตรง แต่ใช้วิธี Symbolic Color Binding คือการอ้างอิงชื่อสล็อตสีในธีมเอกสาร ร่วมกับการแปลงความสว่างผ่านตัวคูณคณิตศาสตร์

โครงสร้างพารามิเตอร์ใน OOXML (styles.xml)

  • w:themeColor: กำหนดสล็อตสีหลักของธีม มี 12 ตัวแปรมาตรฐาน ได้แก่ dark1, light1, dark2, light2 และกลุ่มสีเน้น accent1 ถึง accent6
  • w:themeTint: ตัวคูณการผสมสีขาว (Tinting) เพื่อทำให้สีสว่างขึ้น ใช้ช่วงค่าเลขฐานสิบหก 1 ไบต์ (00 ถึง FF หรือ 0 ถึง 255)
  • w:themeShade: ตัวคูณการผสมสีดำ (Shading) เพื่อทำให้สีมืดลง ใช้ช่วงค่าเลขฐานสิบหก 1 ไบต์ (00 ถึง FF หรือ 0 ถึง 255)

อัลกอริทึมการคำนวณค่าสีจริง (Linear Interpolation)


สูตรการคำนวณ Tint (ผสมสีขาว):
RGB_new = RGB_base + (255 - RGB_base) × (Tint / 255)
ค่า Tint จะเพิ่มความสว่างโดยดึงทุกแชนเนลเข้าหาค่า 255 มักนำไปใช้ทำพื้นหลังแถวสลับ (Banded Rows เช่น Tint 20% หรือค่า Hex ประมาณ 33) และสีเส้นกรอบด้านใน


สูตรการคำนวณ Shade (ผสมสีดำ):
RGB_new = RGB_base × (Shade / 255)
ค่า Shade จะลดความสว่างโดยดึงทุกแชนเนลลงเข้าหาค่า 0 มักใช้ในตารางกลุ่ม Dark สไตล์ หรือเส้นขอบของแถวสรุปผล (Total Row)

<!-- ตัวอย่าง XML การแรเงาแถวสลับด้วย Tint 20% บน Accent 1 -->
<w:tblStylePr w:type="band1H">
  <w:tcPr>
    <w:shd w:val="clear" w:color="auto" w:fill="D9E1F2" w:themeColor="accent1" w:themeTint="33"/>
  </w:tcPr>
</w:tblStylePr>

หมวดหมู่และลำดับของ Table Styles Gallery

เมื่อคลิกเลือกสไตล์ตารางบนแถบ Ribbon เมนู Table Design จะแสดงตารางสำเร็จรูปที่จัดหมวดหมู่ตามระดับคอนทราสต์และการวางเส้นกรอบ โดยแบ่งออกเป็น 3 ระดับหลัก

 [ Table Styles Gallery ]
 ├── 1. Plain Tables       (ไร้สีพื้น เน้นโครงสร้างเส้น)
 ├── 2. Grid Tables        (มีเส้นกรอบครบทุกช่อง)
 │    ├── Light Styles     (สว่าง/เน้นเฉพาะเส้น)
 │    ├── Medium Styles    (หัวตารางทึบ + แถวสลับ)
 │    └── Dark Styles      (คอนทราสต์สูง สลับสีเข้ม)
 └── 3. List Tables        (ตัดเส้นแนวตั้ง เน้นเส้นแนวนอน)
      ├── Light Styles
      ├── Medium Styles
      └── Dark Styles
หมวดหมู่สไตล์โครงสร้างสีพื้นหลัง (Shading)ลักษณะเส้นตาราง (Borders)การนำไปใช้งาน
Plain Tablesโปร่งใส หรือใช้เพียงสี light1 (ขาว) ไม่มีสีเน้น Accentเส้นเดี่ยวสีดำ/เทาบางๆ หรือไม่มีเส้นกรอบเลยสัญญาทางกฎหมาย, เอกสารราชการที่เน้นความเรียบง่าย
Grid TablesLight: พื้นใส/ขาว เน้นสี Accent ที่เส้นขอบ
Medium: หัวตารางใช้ Accent 100% แถวสลับใช้ Accent Tint 15-20%
Dark: สลับระหว่าง Accent 100% กับ Accent Shade เข้ม
มีเส้นกรอบสมบูรณ์ทุกช่อง ทั้งแนวตั้งและแนวนอน (insideH, insideV, top, bottom, left, right)ตารางงบการเงิน, ตารางเปรียบเทียบสเปกสินค้า, Data Sheet
List Tablesการจับคู่สีคล้ายกับ Grid Tables แต่เน้นความโปร่งตาตัดเส้นแนวตั้งทิ้งทั้งหมด (insideV = none) มีเฉพาะเส้นแนวนอนใต้ Header และแถวปิดท้ายตารางสรุปในรายงานประจำปี, บทวิเคราะห์, แดชบอร์ดข้อมูล

Conditional Formatting ในตาราง (Table Style Options)

Word รองรับการจัดรูปแบบตามบทบาทของเซลล์ผ่านช่องทำเครื่องหมายในส่วน Table Style Options โดยระบบจะแปลการเลือกเป็นบิตแฟล็กในแท็ก <w:tblLook> ของไฟล์ word/document.xml


แฟล็กทั้ง 6 เงื่อนไขและการจับคู่กับ XML Element

ตัวเลือกบน UIFlag ใน w:tblLookรหัสเงื่อนไขใน w:tblStylePrพฤติกรรมการแสดงผล
Header RowfirstRow="1"type="firstRow"ใช้สีพื้นทึบ (Accent 100%), ตัวอักษรสีขาว/หนา, บังคับคุณสมบัติ Repeat Header บนทุกหน้า
Total RowlastRow="1"type="lastRow"ใช้เส้นขอบบนเดี่ยว เส้นขอบล่างคู่ (Double border), ตัวหนาเพื่อแยกสรุปผล
First ColumnfirstColumn="1"type="firstCol"ข้อความจัดชิดซ้าย ตัวหนา เพื่อทำหน้าที่เป็น Label ของแถว
Last ColumnlastColumn="1"type="lastCol"ข้อความตัวหนา หรือปรับเส้นขอบซ้าย เพื่อเน้นคอลัมน์ผลลัพธ์แนวตั้ง
Banded RowsnoHBand="0"type="band1H", band2Hสลับสีแถวแนวนอน (Zebra Striping) เพื่อป้องกันสายตาลายขณะอ่านข้อมูลตามแนวยาว
Banded ColumnsnoVBand="0"type="band1V", band2Vสลับสีคอลัมน์แนวตั้ง ใช้สำหรับตาราง Matrix หรือการเปรียบเทียบหลายตัวแปร

ลำดับการทับซ้อนและแก้ความขัดแย้งของสไตล์ (Cascade Precedence)

เมื่อเซลล์หนึ่งเข้าข่ายหลายเงื่อนไขพร้อมกัน เช่น เซลล์มุมบนซ้าย (ซึ่งเป็นทั้ง firstRow และ firstCol) Word มีลำดับการเรนเดอร์ทับซ้อนตามลำดับความสำคัญจากต่ำไปสูง ดังนี้:

  1. Whole Table (w:tblPr)
    สไตล์พื้นฐานทั้งตาราง
  2. Banded Elements (band1H, band2H, band1V, band2V)
    สไตล์แถบสลับ
  3. Columns Formatting (firstCol, lastCol)
    สไตล์คอลัมน์แรกและท้าย
  4. Rows Formatting (firstRow, lastRow)
    สไตล์แถวแรกและแถวท้าย (มีสิทธิ์สูงกว่าคอลัมน์)
  5. Corner Cells (nwCell, neCell, swCell, seCell)
    เซลล์จุดตัดมุมทั้งสี่มุม (ใช้แก้กรณีพิเศษ เช่น มุมตัดของ Header และ First Column)
  6. Direct Cell Formatting
    การคลิกปรับสีหรือฟอนต์เฉพาะเซลล์ด้วยตนเองบนหน้าเอกสาร ซึ่งจะเขียนทับทุกกฎด้านบนเสมอ

กลไกทั้งหมดนี้ทำให้ Table Styles ใน Word ทำงานคล้ายคลึงกับ CSS Framework ในงานเว็บ ซึ่งแยกส่วน Class พื้นฐาน ตัวแปรสี และ State ของแถว/คอลัมน์ออกจากกันอย่างเป็นระเบียบ สะดวกต่อการบำรุงรักษาและการออกแบบเอกสารในระดับอุตสาหกรรม