power point에서 고칠 수 없는 오류가 발생했습니다. 프레젠테이션을 저장하고 power point를 종료한 후 다시 시작하십시오.

이런 오류 발생시 해결 방법 중 하나를 제가 올려놓은 것입니다.

http://answers.microsoft.com/ko-kr/office/forum/office_2010-powerpoint/ppt-2010%EC%9D%84/a35ff2a9-443d-4f6e-8a6d-177864ced8e6

바이러스보다는

파워포인트에서 사용하는 메모리가 가득차서 생기는 에러로 보입니다.

파워포인트 파일에는 눈에 보이지 않는 개체가 수없이 많을 수 있습니다.

예를 들어 복사-붙여넣기를 하다가 보이지 않는 개체까지 복사가 되거나

VBA 스크립트나 매크로에서 슬라이드쇼 중에 Shape 등의 개체를 생성한다면 만일 사용자가  슬라이드쇼를 저장하면 생성된 보이지 않는 개체까지 저장이 되고  이러한 과정이 반복되면 쌓이고 쌓여서 결국에는 파워포인트가 감당할 수 없게 됩니다.


해결책은 파일- 정보-문제확인 메뉴에서 문서검사를 실행하십시요.

저장해야한다는 메시지는 무시하시고 

검사를 시작하십시요. (보이지 않는 슬라이드 서식에 체크가 된 상태로)

검사 결과 발견된 보이지 않는 개체(대개 천여개 이상)를 '삭제'버튼을 눌러서 삭제합니다.

이제 저장이 가능할 것입니다.

슬라이드쇼를 실행한 후 저장을 계속하게 되면 

같은 에러가 또 발생할 수 있습니다.

무분별한 복사/붙여넣기는 이런 개체가 자신도 모르게 복사되어 저장될 수 있습니다.

또한 VBA 스크립트 사용시 

보이지 않는 개체가 생성되었는지 확인하고 삭제하는 매크로나 스크립트를 이용하는 것이 좋습니다.


***************************************************************************************************************


참고로 아래 내용은 VBA 스크립트 상에서 발생할 수 있는 문제입니다.


예를 들어, 다음은 슬라이드 속 보이지 않는 Shape을 모두 삭제하는 VBA 스크립트(매크로)입니다.

  Sub remove_invisible()
Dim i as Integer
Dim myShape as Shape
Dim myCount as Integer

For i = 1 To ActivePresentation.Slides.Count
    For Each myShape In ActivePresentation.Slides(i).Shapes

        If myShape.Visible = msoFalse  Then
            myShape.Delete ' erase shapes
            myCount = myCount + 1
        End If

    Next myShape
Next

MsgBox myCount & " shapes were deleted."
End Sub            

하지만 심지어 위 스크립트 마저도 연속된 이름없는 개체는 놓칠 수가 있습니다.


For each 문에서 myShape.Delete로 삭제하면 다음 Shape으로 넘어가야 하지만  

배열 구조상 지워진 자리에 다음 Shape이 앞당겨져버리기 때문에 하나이면 상관 없지만 연속된 이름없는 개체는 놓쳐버리게(건너뛰게) 됩니다.

  Sub remove_invisible()
Dim i, j as Integer
Dim myShape as Shape
Dim myCount as Integer

For i = 1 To ActivePresentation.Slides.Count
    For j =ActivePresentation.Slides(i).Shapes.Count to 1 Step -1
        set myShape = ActivePresentation.Slides(i).Shapes(j)
        If myShape.Visible = msoFalse  Then
            myShape.Delete ' erase shapes
            myCount = myCount + 1
        End If

    Next j
Next i

MsgBox myCount & " shapes were deleted."
End Sub

이렇게 위에서 아래로 내려가면서 삭제하는 것이 좋습니다.

그헐지 않고 보이지 않는 개체를 놓치다 보면 사용자가 슬라이드쇼를 진행하면 할수록, 또한 저장하면 할수록

내부적으로 개체가 차지하는 메모리양은 기하급수적으로  늘어나서 파워포인트가 감당할 수 없게됩니다.

만일  슬라이드쇼 중에 VBA 스크립트로 Shape를 추가하게 된다면

가끔  파일- 정보-문제확인 메뉴에서 문서검사에 보이지 않는 개체를 검사해보세요.


다음은 해외포럼에 질문글에 대한 저의 답변입니다.

http://www.brightcarbon.com/blog/the-annoying-powerpoint-error-powerpoint-found-an-error-that-it-cant-correct/

Usually it’s memory overflow issue.
I think your presentation slides have too many invisible objects for PowerPoint to handle. You can’t correct it/them since they are invisible. Unless you remove slides, the problem will go on.

Go to menu [File -Info – Check for Issues – Inspect Document ]
Now, find and remove invisible data

https://support.office.com/en-us/article/Remove-hidden-data-and-personal-information-by-inspecting-presentations-b00bf28d-98ca-4e6c-80ad-8f3417f16b58

To prevent this issue from happening, do not copy/paste slides or pictures from unknown sources. If you write or use VBA script, BE SURE to remove invisible objects created during the slideshow.

Below is the script that can be used to remove all the invisible shape objects in the slides.

Sub remove_invisible()
Dim i, j as Integer
Dim myShape as Shape
Dim myCount as Integer

For i = 1 To ActivePresentation.Slides.Count
‘ delete shapes in reversed order. Otherwise, you may miss some consecutive innvisible shapes. Do not use ‘for each’ syntax when deleting an array.
    For j =ActivePresentation.Slides(i).Shapes.Count to 1 Step -1
        set myShape = ActivePresentation.Slides(i).Shapes(j)
        If myShape.Visible = msoFalse Then
            myShape.Delete ‘ erase shapes
            myCount = myCount + 1
        End If

Next j

Next i

MsgBox myCount & ” shapes were deleted.”
End Sub