출처: flaticon.com

 

파워포인트 현재 슬라이드를 윈도우 바탕화면으로 설정하는 코드입니다.

시간표나 일정표, 달력, 외울 것 같은 것을 파워포인트에서 만들고 자주 확인하기 위해서

윈도우 바탕화면으로 바로 설정할 때 유용하겠습니다.

 

👆 디자인-슬라이드 크기에서 윈도우 바탕화면 비율에 맞게 설정해야 그림비율이 유지됩니다.

아래는 1920 * 1080 크기로 png 파일을 저장해서 바탕화면으로 설정하기 때문에

슬라이드 크기를 16:9 로 하는 것이 좋습니다.

가로 넓이를 변경하면 세로 높이는 슬라이드 비율에 의해 자동 반영됩니다.

 

✌ 현재 슬라이드를 이미지로 저장해서 바탕으로 설정하기 때문에 슬라이드가 최소 1 개 선택되어 있어야 합니다.

 

🤞 임시로 작성된 png파일은 설정 후 삭제됩니다.

 

더보기
Private Const SPI_SETDESKWALLPAPER = 20
Private Const SPIF_SENDWININICHANGE = &H2
Private Const SPIF_UPDATEINIFILE = &H1

Private Declare PtrSafe Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" _
    (ByVal uAction As Long, ByVal uParam As Long, _ 
    ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long


Function SetWallpaper(ByVal FileName As String)

    Dim ret As Long

    ret = SystemParametersInfo(SPI_SETDESKWALLPAPER, 0&, FileName, _
        SPIF_SENDWININICHANGE Or SPIF_UPDATEINIFILE)

End Function

'//현재 슬라이드를 바탕화면 배경으로 지정
'//슬라이드 디자인을 16:9로 미리 설정하는 것을 권장
Sub SetCurrentSlideAsWallpaper()

    Dim pngFile As String
    
    With ActivePresentation
        w = 1920 '2010버전의 경우 최대 3072px '2019의 경우 9216px도 가능
        h = w * (.PageSetup.SlideHeight / .PageSetup.SlideWidth) ' 비율유지한 상태로 최대 세로크기
        pngFile = .Path & "\PIC_" & Format(Now, "YYMMDD_HHNNSS") & ".png"
        With ActiveWindow.Selection.SlideRange(1)
            .Export pngFile, "PNG", w, h
        End With
    End With
    
    SetWallpaper pngFile
    
    Kill pngFile
    
End Sub

 

현재슬라이드바탕화면설정1.pptm
0.62MB

 

참고: 이미지파일을 화면에 맞게 확장할지 여부나 Tile로 할 것인지 등은 레지스트리를 수정해야겠습니다.

또한 윈7이전버전에서는 bmp이미지만 지원합니다.

channel9.msdn.com/coding4fun/articles/Setting-Wallpaper