관련: 지식인
특정 단어에 대해 메모를 일괄로 삽입하려면 VBA를 한 번 이용해보세요.
Alt-F11 누르고 삽입 > 모듈 추가 후에
아래 코드를 붙여 넣으세요.
아래 경우는 모든 슬라이드에서 '비디오'라는 문자를 찾아서 '비디오'라는 글자 우측 상단에 메모를 추가합니다.
더보기
Option Explicit
Sub AddMemo()
Dim sld As Slide
Dim shp As Shape
Dim tr As TextRange, cmt As Comment
Dim pos As Long, Rmargin As Single, Tmargin As Single
Dim strSearch$, Author$, Memo$, strUser$, tmp() As String
'// 슬라이드에서 '비디오'라는 문자를 찾아서 우측 상단에 메모를 추가합니다.
strSearch = "비디오" '"비디오" '찾을 문자열
Author = "홍길동"
Memo = "메모내용입니다."
If strSearch = "" Then
strUser = InputBox("찾을 문자열, 작성자, 메모내용을 콤마로 구분해서 입력하세요.", "메모일괄추가", strSearch & ", " & Author & ", " & Memo)
If strUser = "" Then MsgBox "취소합니다.": Exit Sub
tmp = Split(strUser, ",")
If UBound(tmp) < 2 Then MsgBox "찾을 문자열, 작성자, 메모내용을 콤마로 구분해 입력하세요.": Exit Sub
strSearch = Trim(tmp(0)): Author = Trim(tmp(1)): Memo = Trim(tmp(2))
End If
'Debug.Print strSearch & ", " & Author & ", " & Memo
Rmargin = -5: Tmargin = -10
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
If shp.HasTextFrame Then
If shp.TextFrame.HasText Then
pos = 0
Do
Set tr = shp.TextFrame.TextRange.Find(FindWhat:=strSearch, After:=pos, _
MatchCase:=msoFalse, WholeWords:=msoFalse)
If Not tr Is Nothing Then
Set cmt = sld.Comments.Add(tr.BoundLeft + tr.BoundWidth + Rmargin, tr.BoundTop - Tmargin, _
Author, "", Memo)
pos = tr.Start + Len(strSearch)
End If
Loop While Not tr Is Nothing
End If
End If
Next shp
Next sld
End Sub
찾을 문자열과 작성자와 메모 내용은 알맞게 고치세요.
코드를 조금 더 수정해서 찾을 문자열과 작성자, 일괄메모내용을 콤마로 구분해서 입력하도록 했습니다.
이제 F5를 누르거나 코드창을 닫고 Alt-F8로 AddMemo 매크로를 실행하세요.
아래처럼 홍길동이라는 작성자 이름으로 '비디오'라는 글자 마다 메모를 모두 삽입해줍니다.
코드상의 메모내용 뒤에 & " " & pos 는삭제하세요.
위 작업은 모든 슬라이드를 대상으로 처리합니다.
참고로 아래 코드는 특정 작성자의 메모를 모두 삭제해줍니다.
더보기
Sub DeleteMemoByAuthor()
Dim sld As Slide
Dim shp As Shape
Dim l As Long, Author As String
Author = "홍길동"
For Each sld In ActivePresentation.Slides
For l = sld.Comments.Count To 1 Step -1
If sld.Comments(l).Author = Author Then sld.Comments(l).Delete
Next l
Next sld
End Sub
아래 코드는 모든 슬라이드의 메모를 Ctrl-G실행창에 출력해줍니다.
더보기
Sub ListMemos()
Dim sld As Slide
Dim shp As Shape
Dim l As Long
For Each sld In ActivePresentation.Slides
With sld.Comments
For l = .Count To 1 Step -1
Debug.Print "************************* " & sld.SlideIndex & " Slide - " & l
Debug.Print "Author: " & .Item(l).Author
Debug.Print "DateTime: " & .Item(l).DateTime
Debug.Print "Text:" & .Item(l).Text
Debug.Print "x,y: " & .Item(l).Left & ", " & .Item(l).Top
Debug.Print "**************************" & vbCrLf
Next l
End With
Next sld
End Sub
첨부파일 참고하세요.
'PPT+VBA' 카테고리의 다른 글
PPT 시작할 때 매크로 파일들 자동으로 열기 (0) | 2022.11.16 |
---|---|
오디오 Fade Out 효과 구현 (0) | 2022.11.13 |
랜덤 사진 슬라이드쇼 (1) | 2022.11.03 |
PPT 합치기 (1) | 2022.10.31 |
발표자 보기에서 여러 개의 슬라이드 미리 보기 (2) | 2022.09.12 |
개체 간격 자동으로 배치하기 (0) | 2022.09.07 |
원둘레에 여러개의 원 그리기 (0) | 2022.09.05 |
VBA로 이동경로 애니메이션 추가 (0) | 2022.08.30 |
최근댓글