[VBA] 각 Excel 셀의 값을 각 슬라이드 제목으로 PowerPoint 자동 생성
100슬라이드 정도라면 수작업으로도 그렇게 시간이 걸리지 않는다고 생각합니다만, 카피가 3,000 이상 오는 예정으로, 수정도 생각하면 좀더입니다.
또한 카피 라이팅에 필요한 줄 바꿈이 들어 있기 때문에 Excel에서는 셀을 열고 복사해야합니다. (그렇게 하지 않으면 전후에 더블 쿼테이션["]이 붙어 버려, 나중에 지워 가는 것도 귀찮습니다.)
그런 이렇게 수작업으로 하기에는 시간이 지나치게 낭비했기 때문에 오랫동안 VBA 조립했습니다.
전제
원본 복사본은 Excel에 1 복사본 1 셀의 형태로 저장되어 있습니다.
나중에 스타일을 일괄 성형하는 데 슬라이드 마스터를 사용할 수 있으면 편하기 때문에 타이틀 모양에 넣어 가기로했습니다. (타이틀 모양에 넣어두면 슬라이드 마스터로 스타일을 일괄 변환할 수 있습니다.)
또한 이 VBA는 Windows용 Office365에서 만들었습니다. (Mac에서는 검증하지 않았습니다.)
Excel 상태
형식은 뭐든지 좋지만, 1 카피 1 셀의 형태로 격납되어 있는 것으로 합니다.
이번에는 모든 것을 채용하지 않을 가능성을 생각하여 「채용」열을 만들고, 거기에 우선도를 숫자 입력한 것을 필터한다고 가정하고 있습니다.
내용은 적당히 만들었습니다만 ↓ 이런 이미지입니다.
이와 같이 필터 한 상태에서 대상 셀을 일괄 선택한다고 가정합니다.
(이 이미지의 경우 B2 ~ B27을 선택하는 이미지)
VBA
VBA의 전체상은 ↓ 이런 느낌입니다. 매우 간단!
Sub ExcelToPowerPoint()
Dim pp, ps, sl As Object
Dim i, rowCount As Long
Dim r, c As Object
Dim rng As Range
' 選択範囲のうち表示されているセル範囲のみ取得
Set rng = Selection.SpecialCells(xlCellTypeVisible)
' PowerPoint オブジェクト作成
Set pp = CreateObject("PowerPoint.Application")
With pp
' PowerPoint 表示
.Visible = True
' PowerPoint ファイル新規作成
Set ps = .Presentations.Add
' 選択範囲の行でループ
For Each r In rng.Rows
' 選択範囲の列でループ
For Each c In r.Columns
With ps.Slides
' スライドを(タイトルのみレイアウトで)追加
Set sl = .Add( _
Index:=.Count + 1, _
Layout:=11)
' タイトルシェイプにループ時のカレントセルの内容を挿入
sl.Shapes(1).TextFrame.TextRange.Text = c.Text
End With
Next c
Next r
' オブジェクトをクリア
Set sl = Nothing
Set ps = Nothing
End With
Set pp = Nothing
End Sub
이것을 Excel VBA의 표준 모듈로 등록합니다.
VBA의 흐름 해설
만든 PowerPoint
↓이런 느낌이 한순간에 생겼습니다.
개행도 제대로 반영되고 있습니다.
요약
이번에 만든 것은 수요가 적습니다만, VBA는 역시 편리하다고 생각했습니다.
** 주의 **
VBA는 버전과 OS 환경에 따라 다르므로,
이용되는 경우는 자기책임으로 부탁합니다🙏
Reference
이 문제에 관하여([VBA] 각 Excel 셀의 값을 각 슬라이드 제목으로 PowerPoint 자동 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuusuke510/items/beec09fd10e18817d89e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)