อัปเดตวัตถุ OLE โดยอัตโนมัติด้วยแอดอิน PowerPoint

บทนำ

หนึ่งในคำถามที่พบบ่อยที่สุดที่ลูกค้า Aspose.Slides for .NET ถามคือวิธีการสร้างหรือแก้ไขแผนภูมิที่แก้ไขได้ (หรือวัตถุ OLE อื่น) เพื่อให้มันอัปเดตโดยอัตโนมัติเมื่อเปิดงานนำเสนอ อย่างไรก็ตาม PowerPoint ไม่รองรับแมโครอัตโนมัติในลักษณะเดียวกับ Excel และ Word แมโครที่มีอยู่เพียงสองตัวคือ Auto_Open และ Auto_Close ซึ่งทำงานอัตโนมัติได้เฉพาะจากแอดอินเท่านั้น เคล็ดลับทางเทคนิคสั้นนี้จะแสดงวิธีทำให้สำเร็จ

อัปเดตวัตถุ OLE โดยอัตโนมัติ

ก่อนแรก มีแอดอินฟรีแวร์หลายตัวที่เพิ่มคุณสมบัติแมโคร Auto_Open ให้กับ PowerPoint เช่น AutoEvents Add-in และ Event Generator.

หลังจากติดตั้งแอดอินใดแอดอินหนึ่ง เพียงแค่เพิ่มแมโคร Auto_Open() (หรือ OnPresentationOpen() หากคุณใช้ Event Generator) ลงในงานนำเสนอเทมเพลตของคุณตามที่แสดงด้านล่าง:

public void Auto_Open()
{
    // วนลูปผ่านแต่ละสไลด์ในงานนำเสนอ.
    foreach (var oSlide in ActivePresentation.Slides)
    {
        // วนลูปผ่านรูปทรงทั้งหมดบนสไลด์ปัจจุบัน.
        foreach (var oShape in oSlide.Shapes)
        {
            // ตรวจสอบว่ารูปร่างเป็นวัตถุ OLE หรือไม่.
            if (oShape.Type == msoEmbeddedOLEObject)
            {
                // พบวัตถุ OLE. รับการอ้างอิงวัตถุแล้วอัปเดตมัน.
                oObject = oShape.OLEFormat.Object;
                oObject.Application.Update();

                // ตอนนี้ออกจากโปรแกรมเซิร์ฟเวอร์ OLE.
                // สิ่งนี้จะปล่อยหน่วยความจำและป้องกันปัญหาใด ๆ.
                // นอกจากนี้ ตั้งค่า oObject เป็น Nothing เพื่อปล่อยวัตถุ.
                oObject.Application.Quit();
                oObject = null;
            }
        }
    }
}

การเปลี่ยนแปลงใด ๆ ที่ทำกับวัตถุ OLE ด้วย Aspose.Slides for .NET จะถูกอัปเดตโดยอัตโนมัติเมื่อ PowerPoint เปิดงานนำเสนอ หากคุณมีวัตถุ OLE จำนวนมากและไม่ต้องการอัปเดตทั้งหมด เพียงเพิ่มแท็กกำหนดเองให้กับรูปร่างที่ต้องการประมวลผลและตรวจสอบในแมโคร