지금 이미지 파일로.. 바로.. 당장..

필요할 때 사용할만한 매크로를 만들어봤다. 이런 경우가 흔치는 않지만, 예를 들어, 특정한 페이지를 수정을 했다고 했을 때, 문서를 다 보내기는 그렇고, 일정 부분만 스크린 샷 잡기도 애매할 때 써먹을만 할 것이다.

매크로를 실행하고, 페이지 번호를 넣으면 해당 페이지가 이미지로 전환되도록 설계하였다.
저장 위치는 PPT 파일이 위치한 곳과 동일하게 저장되도록 했으며, 여러 페이지를 동시에 변환할 때는 그냥 JPG로 내보내기 하는 기능이 있기 때문에 구지 따로 넣지 않았다.

myimg



개발새발 코드는 아래와 같으며, PPAM 추가 기능 파일로 만들어 놓는다면 가끔 사용하기 편할 것이다.

Sub jpgExport()

filePath = ActivePresentation.Path

pagenum = CInt(InputBox("Input PageNumber"))

If IsNumeric(pagenum) And pagenum <= ActivePresentation.Slides.Count Then

    With ActivePresentation.Slides(pagenum)
        .Export filePath & _
            "/Slide" & pagenum & ".jpg", "JPG"
    End With
Else: MsgBox ("non-numeric value or wrong page number")
End If

End Sub

이상. 이런짓을 왜 하고 있는지는 모르겠지만, 굿럭.

업데이트

사용을 하다보니, 의외로 여러 페이지를 동시에 이미지 파일로 만들어야 하는 경우가 있었다. 코드를 살짝 수정해본다. 대상 슬라이드를 입력하는 인풋메시지 창에 컴마(,)로 구분하여 슬라이드 번호를 입력해주면 된다.

위의 코드도 마찬가지이지만, 사용 전 주의사항은..

  • ppt파일이 반드시 어딘가에 저장이 된 상태여야 한다는 것이다. 새로 만들기 해서 presentation1.pptx 상태일때는 이미지 저장 경로를 정할수가 없다. 임의로 정하는 예외처리를 할까 하다가… 큰 의미가 없어서 하지 않는다.
  • 인풋박스에서 “-“를 통해서 슬라이드 범위를 지정하도록 할까 했었지만, 그럴바에는 전체를 jpg파일르 export하는 기본 기능을 사용하는 것이 낫다.

Sub jpgExport()
    filepath = ActivePresentation.Path
    slidenum = InputBox("Input PageNumber")

    If InStr(slidenum, ",") Then
        slicePageNum = Split(Replace(slidenum, " ", ""), ",")
        For i = LBound(slicePageNum) To UBound(slicePageNum)
            pagenum = CInt(slicePageNum(i))
            If IsNumeric(pagenum) And pagenum <= ActivePresentation.Slides.Count Then
                With ActivePresentation.Slides(pagenum)
                    .Export filepath & _
                        "/Slide" & pagenum & ".jpg", "JPG"
                End With
            Else: MsgBox ("non-numeric value or wrong page number")
            End If
        Next i
    Else
        pagenum = CInt(slidenum)
        If IsNumeric(pagenum) And pagenum <= ActivePresentation.Slides.Count Then
            With ActivePresentation.Slides(pagenum)
                .Export filepath & _
                    "/Slide" & pagenum & ".jpg", "JPG"
            End With
        Else: MsgBox ("non-numeric value or wrong page number")
        End If
    End If

    MsgBox ("export complete")
End Sub


심심해서 만들었는데, 나름 쓸모가 많은 듯하여 기분이 좋다.

끝.