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
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
'VBA Tipz' 카테고리의 다른 글
파워포인트 VBA로 도트 하트 그리기 (0) | 2022.03.17 |
---|---|
파워포인트 VBA 어디서 배워요? (0) | 2022.03.17 |
파워포인트 VBA 어떻게 시작할까요? (0) | 2022.03.17 |
64비트 호환 API 선언 모음 (0) | 2019.10.29 |
그룹개체를 복사하면 Parent/Child 속성을 잃어버린다. (2) | 2017.01.12 |
Collection: 배열을 넘어서는 컬렉션 Type 소개 (0) | 2017.01.12 |
for each의 경고 (0) | 2017.01.12 |
VBA 중복되지 않는 랜덤값(숫자) 구하기 (5) | 2016.11.22 |
최근댓글