ผู้ใช้ macOS หลายคนเจอ ข้อผิดพลาด Grant File Access เมื่อพยายามเปิดไฟล์ต่างๆ ใน Office 2016 ปัญหามักเกิดกับไฟล์ Word แต่บางรายแจ้งว่า Excel และ PowerPoint ก็มีปัญหาเช่นกัน

เมื่อเจอปัญหานี้ จะมีป๊อปอัปขอให้ให้สิทธิ์เข้าถึงไฟล์ หากผู้ใช้เลือกไฟล์และกด Grant Access จะเจอข้อผิดพลาด:
Word / Excel / PowerPoint ไม่สามารถเปิดเอกสารได้: ผู้ใช้ไม่มีสิทธิ์เข้าถึง

สาเหตุคือ กฎ Sandboxing ใหม่ของ Apple ซึ่งจำกัดการกระทำต่างๆ ให้ผูกมัดกับตำแหน่งเฉพาะ Sandboxing มีประสิทธิภาพป้องกันไวรัส/มัลแวร์ไม่ให้โดนไฟล์ระบบ ตามกฎใหม่ ทุกแอปที่ใช้ฟอนต์กำหนดเอง ต้องให้ฟอนต์อยู่เฉพาะในแอปนั้นเท่านั้น Apple ไม่อนุญาตให้ติดตั้งฟอนต์ระบบทั่วไป (System-wide) อีกต่อไป
หากฟอนต์ระบบถูกเปลี่ยนแปลง จะถือเป็นการละเมิดความปลอดภัยและจะถูกแทนที่ในอัปเดตถัดไป ตั้งแต่ Office 2016 Microsoft ต้องปฏิบัติตามกฎของ Apple เพื่อขายใน App Store Microsoft จึงติดตั้งชุดฟอนต์เฉพาะของตนในตำแหน่งแยกต่างหาก
อย่างไรก็ตาม โปรแกรมจัดการฟอนต์ของ協力廠商 (3rd party) หลายตัวยังไม่ได้อัปเดตรองรับกฎ Sandbox ใหม่ ทำให้เกิดข้อขัดแย้งที่ macOS มองว่าเป็นการละเมิดความปลอดภัย ยืนยันแล้วว่าแอปจัดการฟอนต์อย่าง Suitcase, Linotype Font Explorer, Extensis, FontExplorer X เป็นสาเหตุหลักของ Grant Access error กับ Office 2016 ปัจจุบัน Font Book เป็นโปรแกรมจัดการฟอนต์เดียวที่ออกแบบมาเพื่อทำงานกับระบบความปลอดภัยใหม่ของ Apple
หมายเหตุ: บางรายรายงานว่าลดจำนวนฟอนต์ในแอป協力廠商ทำให้ปัญหาหาย หากมีฟอนต์มากกว่า 1,000 ตัว ลองลดจำนวน แล้วรีสตาร์ทและลองใหม่
ด้านล่างมีชุดวิธีแก้ไข หากติดตั้งแอปจัดการฟอนต์นอก Font Book แต่ไม่จำเป็น ให้ทำ วิธี 1 หรือ 2 หากต้องใช้แอป協力廠商 ให้ทำ วิธี 3 หรือ 4
อัปเดต: เพิ่มวิธีที่ 5 สำหรับผู้ที่เจอปัญหาบน macOS 10.13 High Sierra หรือใหม่กว่า ให้ไปที่ วิธี 5 ทันที
วิธีที่ 1: ปิดใช้งานฟอนต์จากแอปจัดการฟอนต์協力廠商
เนื่องจากแอปอย่าง FontExplorer X, Universal Type Server, Suitcase, Extensis ก่อให้เกิด Grant Access error การปิดใช้งานฟอนต์ในแอปเหล่านี้มักแก้ปัญหาได้
หากใช้ Suitcase Fusion แก้ได้ง่ายโดย ล้างแคชฟอนต์ (Clean Font Caches): เปิด Suitcase Fusion > File > Clean Font Caches > รีสตาร์ทระบบ ไฟล์ Office ควรเปิดได้ปกติ

หมายเหตุ: วิธีนี้แก้ชั่วคราว อาจต้องทำซ้ำเป็นครั้งคราว
หากใช้ FontExplorer X, Universal Type Server, Extensis ต้องเปิดแอปเหล่านั้นและ ปิดใช้งานฟอนต์ทั้งหมด แล้วรีสตาร์ทและลองเปิดไฟล์ที่ผิดพลาด หากยังไม่ได้ ให้ ถอนติดตั้งแอปจัดการฟอนต์協力廠商 และทำตามขั้นตอน:
- เปิด Finder > Applications > ดับเบิลคลิก Font Book

- ใน Font Book เลือก All Fonts ซ้าย แล้วคลิกฟอนต์ใดฟอนต์หนึ่งขวา กด Command + A เลือกทั้งหมด

- เมนู Edit > Look for Enabled Duplicates

- กด Resolve Manually รอรายการโหลด จะเห็นหน้าต่างรายการฟอนต์ที่ตรวจสอบแล้ว คลิกหัว All เปลี่ยนเป็น Warnings and Errors

- เปิดฟอนต์ซ้ำแต่ละตัว เลือกตัวเก่ากว่า กด Remove Checked ทำซ้ำกับฟอนต์ซ้ำทั้งหมด
หมายเหตุ: เวอร์ชันใหม่เปลี่ยนเป็น "Resolve Checked" ต้องติ๊กฟอนต์ที่ต้องการ เก็บไว้ ไม่ใช่ตัวที่จะลบ - เมนู File > Validate Fonts คลิกหัว All เปลี่ยนเป็น Warnings and Errors

- หากเจอ Error (สีเหลือง/แดง) ให้เปิดแต่ละตัวและแก้ซ้ำเหมือนขั้นตอน 5 จนครบ แล้ว Validate Fonts อีกครั้งจนไม่มี Error

- ปิด Font Book เปิดแอป Office ที่ผิดพลาด ถ้ายังมี Error ให้ Reboot แล้วลองใหม่
วิธีที่ 2: บูทจาก Recovery Partition รีเซ็ตสิทธิ์โฟลเดอร์
หากวิธี 1 ไม่ได้ ให้ลองบูท Recovery Mode ใช้ Terminal รีเซ็ต Folder Permissions และ ACLs วิธีนี้ช่วยหลายคนที่ยังเจอ Error หลังลบแอป協力廠商
- คลิก ไอคอน Apple ซ้ายบน > Restart ระหว่างรีสตาร์ท กดค้าง Command + R เข้า Recovery Mode

- หน้าต่าง OS X Utilities โผล่ เมนู Utilities บนสุด > Terminal

- พิมพ์ "resetpassword" กด Enter

- หน้าต่าง Reset Password โผล่ เลือก Reset Home Folder Permissions and ACLs > กด Reset

- อาจขอรหัสผ่าน หลังใส่แล้วระบบจะรีสตาร์ท
- ลองเปิดแอป Office ที่ผิดพลาด ควรเปิดได้โดยไม่มี Grant Access Error
หมายเหตุ: ปัญหาจะกลับมาหากติดตั้งแอปจัดการฟอนต์協力廠商ที่ไม่ปฏิบัติตามกฎ Sandbox ของ Apple
วิธีที่ 3: หลีกเลี่ยงข้อกำหนด Sandbox ของ Apple
ใน Office รุ่นเก่า (ก่อน 2016) บันทึกไฟล์ได้ทุกที่ ใช้ฟอนต์ได้อิสระ แต่ตอนนี้ Sandbox ห้ามแล้ว ผู้ใช้ VBA กับ Excel ได้รับผลกระทบหนัก เพราะถูกขอสิทธิ์ตลอดเวลา
อย่างไรก็ตาม macOS มีตำแหน่งบางแห่งที่หลีกเลี่ยงพรอมพ์สิทธิ์ได้ ตำแหน่งเหล่านี้อนุญาตให้ VBA รันสคริปต์อิสระ เราสามารถใช้ตำแหน่งเหล่านี้เพื่อเลี่ยง Grant Access Error ตำแหน่งปลอดภัยตัวอย่าง: /Users/*YourUsername*/Library/Group Containers/UBF8T346G9.Office
โฟลเดอร์นี้มีทั้ง Read/Write Access ใช้แบ่งปันข้อมูลระหว่างโปรแกรม Office หรือแอป協力廠商ได้ วิธีใช้:
- เปิด Finder กดค้าง Alt (Option) คลิกเมนู Go > Library

- ไป Group Containers > ดับเบิลคลิก UBF8T346G9.Office

- สร้างโฟลเดอร์ใหม่ใน UBF8T346G9.Office ตั้งชื่ออะไรก็ได้

- ย้ายไฟล์ Office ที่เปิดไม่ได้ทั้งหมดเข้าโฟลเดอร์ปลอดภัยนี้ ควรเปิดได้ปกติ
หมายเหตุ: เพื่อเข้าถึงง่าย ให้เลือกโฟลเดอร์ กด Command + Ctrl + T เพื่อเพิ่มเข้า Favorites ใน Finder

ข้อควรระวัง: ยืนยันทำงานกับไฟล์ Excel เท่านั้น แต่อาจทำงานกับไฟล์ Office 2016 อื่นๆ ได้
วิธีที่ 4: ดึงฟอนต์ Microsoft ออกจากโฟลเดอร์ Resources (ชั่วคราว)
หากงานต้องใช้แอปจัดการฟอนต์協力廠商 ไม่สามารถลบได้ บางคนแก้ได้โดย ลบฟอนต์ Microsoft ออกจากโฟลเดอร์ Resources แต่เป็น แก้ชั่วคราว เพราะอัปเดต Office ครั้งต่อไปจะติดตั้งฟอนต์กลับมา และ Error จะกลับมา
คำเตือน: บางรายรายงาน Word ค้างหลังทำวิธีนี้ หากไม่แบ็กอัปฟอนต์ตามขั้นตอน อาจต้อง Repair/Reinstall Office
- เปิด Finder > Applications > คลิกขวาแอป Office ที่ผิดพลาด (เช่น Word) > Show Package Contents

- ไป Contents > Resources หาโฟลเดอร์ Fonts หรือ DFonts ดับเบิลคลิกเปิด

- สร้างโฟลเดอร์บน Desktop เก็บฟอนต์ MS ไว้เผื่อกู้คืน กด Command + A เลือกฟอนต์ทั้งหมดใน DFonts ย้ายไปโฟลเดอร์ที่สร้าง

- หลังคัดลอกเสร็จ คลิกขวาฟอนต์ใน DFonts > Move to Trash

- เมื่อ DFonts ว่างเปล่า เปิดแอป Office ที่ผิดพลาด ควรเปิดได้ปกติ
หมายเหตุ: หากยัง Error หรือ Word ค้าง ให้ไป Contents > Resources > DFonts/Fonts ใส่ฟอนต์กลับจากโฟลเดอร์ที่สร้างไว้
วิธีที่ 5: ล้างแคชฟอนต์ macOS ผ่าน Terminal (สำหรับ High Sierra ขึ้นไป)
ผู้ใช้ macOS 10.13 High Sierra ขึ้นไปรายงานว่าแก้ได้โดย ล้างแคชฟอนต์ผ่าน Terminal หลังทำและรีสตาร์ท Grant Access Error หายไป
- ปิดแอปทั้งหมด: กด Command + Option + Escape เปิด Force Quit > เลือกแอปแต่ละตัว > Force Quit

สำคัญ: ข้ามขั้นตอนนี้จะทำให้ Error หากมีแอปที่ใช้ฟอนต์แคชเปิดอยู่ - กด Command + Shift + U เปิด Utilities > คลิก Terminal

- พิมพ์คำสั่ง กด Return:
sudo atsutil databases -remove
- ใส่รหัสผ่านบัญชี กด Return อีกครั้ง
- พิมพ์ exit ออกจาก Terminal > File > Quit
- Restart Mac ปัญหาควรหายหลังบูทครั้งต่อไป