قاعدة المعارف KB0209

لا يمكنني إصلاح ملف PowerPoint الخاص بي باستخدام PowerPoint 2013 & 2016

المشكلة

يفشل برنامج PowerPoint في إصلاح ملفات PowerPoint التالفة.

التفسير

يفشل إصلاح ملفات PowerPoint في حالة الوصول إلى الشرائح برمجيًا قبل أن يقوم برنامج PowerPoint بإصلاحها. بالرغم من ذلك، يجب أن يقوم think-cell وعلى الأرجح كذلك الوظائف الإضافية الأخرى بالوصول إلى الشرائح عند فتح الملف، ولا تستطيع أي وظيفة إضافية على الإطلاق معرفة ما إذا كان الملف تالفًا.

لقد قدمنا طلب دعم إلى شركة Microsoft، ولكن لم تقرر Microsoft حتى الآن إصلاح المشكلة. إذا كان لدى شركتك عقد دعم من Microsoft Office وكنت تريد الاتصال بشركة Microsoft لطلب إصلاح، يمكنك الرجوع إلى رقم حالة Microsoft 115040112590053. يمكن تكرار الخطأ دون استخدام think-cell.

تكرار الخطأ دون استخدام think-cell

يمكن تكرار الخطأ دون استخدام think-cell في حالة قيام أي تعليمات برمجية بالوصول إلى الشرائح التالفة قبل انتهاء عملية الإصلاح. في التكرار التالي، يستدعي معالج الأحداث PresentationOpen التعليمات البرمجية التي تقوم بالوصول إلى كل الشرائح عند فتح الملف، أي قبل عملية الإصلاح.

  1. افتح PowerPoint 2013 أو 2016 مع ملف فارغ جديد.
  2. في PowerPoint، انتقل إلى Insertthink-cellTools رمز قائمة الأدوات. Deactivate think-cell.
  3. اضغط على المفتاحين Alt+F11 لفتح Microsoft Visual Basic for Applications.
  4. قم بإضافة هذه التعليمات البرمجية بمثابة وحدة نمطية للفئة وتسميتها cEventClass:

    Public WithEvents PPTEvent As Application
    
    Private Sub Class_Initialize()
        MsgBox "EventHandler is now active."
    End Sub
    
    Private Sub PPTEvent_PresentationOpen(ByVal pres As Presentation)
        On Error GoTo errHandle:
        
        Debug.Print "open file: " & pres.Name
        Dim i As Integer
        
        For i = 1 To pres.Slides.Count
            Debug.Print "Slide " & pres.Slides.Item(i).SlideNumber; " / " _ 
    	& pres.Slides.Count
        Next i
        
        Exit Sub
        
    errHandle:
        Debug.Print ("VBA Error: " & Err.Number & " " & Err.Description) & vbCr
    End Sub

  5. قم بإضافة هذه التعليمات البرمجية بمثابة وحدة نمطية:

    Dim cPPTObject As New cEventClass
    
    Sub Initialize_Eventhandler()
        Set cPPTObject.PPTEvent = Application
        Debug.Print "**** EventHandler active ****"
    End Sub

  6. في نافذة العرض التقديمي في PowerPoint، اضغط على المفتاحين Alt+F8 لفتح النافذة وحدات ماكرو
  7. قم بتشغيل وحدة الماكرو Initialize_Eventhandler.
  8. والآن افتح ملف PowerPoint التالف لديك وحاول إصلاحه.

لا تحدث هذه المشكلة مع Microsoft Office 2010.

الحل

لحين قيام شركة Microsoft بإصلاح هذا الخطأ، يمكنك إلغاء تنشيط think-cell مؤقتًا كحل بديل:

  1. إلغاء تنشيط think-cell في PowerPoint: Insertthink-cellTools رمز قائمة الأدوات. Deactivate think-cell
  2. افتح الملف التالف وقم باصلاحه
  3. إعادة تنشيط think-cell في PowerPoint: إدراجthink-cellتنشيط

مشاركة