답변:
Word에서는이 작업을 수행 할 수 있지만 PowerPoint에서는 불가능합니다. AFAIK의 경우 PPT에 문서 속성이 있지만 슬라이드에 삽입 할 수는 없습니다. PowerPoint에서 사용 가능한 유일한 업데이트 필드는 날짜 및 슬라이드 번호입니다. 어쨌든 VBA에는이를 달성하기위한 해결 방법이있을 수 있습니다. Stackoverflow에서 이것을 요청할 수 있습니다.
명명 된 속성을 모든 슬라이드의 태그있는 텍스트 개체에 넣는 서브 루틴을 작성했습니다.
슬라이드에 파일 속성을 넣습니다. 문자열을 담을 텍스트 상자를 만듭니다. 속성 / 대체 텍스트에서 속성 이름을 대괄호로 묶습니다.
그런 다음 매크로를 실행하십시오 updateProperties()
.
즉 [title]
, 문서 제목을 여러 번 업데이트 할 수 있습니다.
두 개의 특수 태그가 작성되었습니다.
[copyright]
저작권 문자열을 삽입합니다 (예 : © 1998-2013 P.Boothroyd, NIS Oskemen).[page]
편집기 탭에서 슬라이드 번호를 삽입합니다'모든 슬라이드에 문서 속성 복사 '(c) 2013, NIS Oskemen의 P.Boothroyd Dim processPage As Slide 하위 업데이트 속성 () 페이지를 슬라이드로 흐리게 문자열로 희미한 propname '현재 프레젠테이션 (문서)의 모든 슬라이드를 구문 분석합니다. Application.ActivePresentation.Slides의 각 프로세스 페이지마다 ' "["로 태그 된 "altText / title"필드가있는 텍스트 상자에 대해 페이지의 모든 요소를 스캔합니다. processPage.Shapes의 각 obj에 대해 Left (obj.Title, 1) = "["이면 Dim sStart, 정수로 전송 '대괄호 사이에서 속성 추출 sStart = 2 sEnd = InStr (2, obj.Title, "]") propname = 트림 (중간 (obj.Title, sStart, sEnd-2)) obj.Type = msoTextBox 인 경우 '입력란을 요청 된 값으로 설정 obj.TextFrame.TextRange.Text = getProperty (propname, obj.TextFrame.TextRange.Text) 끝 경우 끝 경우 다음 'obj 다음 '페이지 엔드 서브 '명명 된 문서 속성을 가져옵니다 (선택적 기본값 사용). 함수 getProperty (propname, 선택적 def As String) As String '속성에 기본값이 할당되었습니다 getProperty = def 부울로 발견 된 희미 함 발견 = 거짓 propname = LCase (프로파일) '저작권은 생성 된 재산입니다 propname = "저작권"인 경우 문자열로 희미한 작성자 문자열로 희미한 회사 문자열에서 희미한 연도 문자열로 Dim yearTo '모든 적절한 변수를 얻습니다 author = getProperty ( "저자", "") 회사 = getProperty ( "company", "") yearFrom = getProperty ( "created", "") yearTo = 형식 (Now (), "YYYY") '저작권 기호 삽입 getProperty = Chr (169) + "" '저작권 고지 기간 연장 연도부터 연도까지 getProperty = getProperty + yearFrom + "-" 끝 경우 getProperty = getProperty + yearTo '저자 추가 getProperty = getProperty + ""+ 저자 '저자 / 회사 둘 다 존재하는 경우 구분 기호 추가 Len (작성자)> 0 및 Len (회사)> 0이면 getProperty = getProperty & "," 끝 경우 getProperty = getProperty 및 회사 '처리되었으므로 값을 반환하십시오. 발견 = 참 끝 경우 '슬라이드 번호를 문서에 삽입 propname = "page"이면 getProperty = processPage.SlideNumber 발견 = 참 끝 경우 '생성 된 이름이 생성되면 값을 반환 발견되면 GoTo ret '명명 된 값의 표준 MS (파일) 속성을 검색합니다. Application.ActivePresentation.BuiltInDocumentProperties의 각 p에 대해 LCase (p.Name) = propname이면 getProperty = p. 값 발견 = 참 출구 끝 경우 다음 'p '명명 된 값의 사용자 정의 된 특성 스캔 발견되면 GoTo ret 응용 프로그램에서 각 p에 대해 ActivePresentation.CustomDocumentProperties LCase (p.Name) = propname이면 getProperty = p. 값 발견 = 참 출구 끝 경우 다음 'p ret : 최종 기능
해결 방법은 쉽게 "이동"할 수있는 사용자 정의 속성을 사용하는 것입니다 (슬라이드를 넘어갈 필요 없음).
에서 http://msdn.itags.org/powerpoint/4426/ :
- 책갈피를 설정하려는 모양 또는 텍스트를 선택하십시오.
- 파일 | 속성 ...을 클릭하고 사용자 정의 탭을 활성화하십시오.
- 북마크 이름을 입력하십시오.
- '콘텐츠 링크'를 선택하십시오. '컨텐츠에 링크'를 선택하면 인접한 드롭 다운 상자에 표시되는 값이 선택 항목에 대한 참조입니다.
- 추가를 클릭하십시오.
- 확인을 클릭하여 속성 대화 상자를 닫습니다.
이제 북마크를 만들었으므로 다음과 같이 이동할 수 있습니다.
1. 편집 | 속성으로 이동 ...
2. 대화 상자에서 속성 이름을 클릭합니다 (이것은 북마크에 지정한 이름입니다).
3. 이동을 클릭하십시오.
"이동"대화 상자에는 두 번 클릭 할 수있는 책갈피 목록이 표시되며 편집 / 붙여 넣기 준비가 된 즐겨 찾는 텍스트 상자로 이동합니다.
Powerpoint에서이 작업을 수행하는 가장 쉬운 방법은 적어도 모든 슬라이드에 표시되는 값에 대해 슬라이드 마스터를 편집하는 것입니다. 저자 이름을 거기에 넣으십시오.
(Word를 통해 다른 사람이 할 수없는 이유는 Microsoft의 여러 팀이 거의 대화하지 않기 때문입니다.)
ppt 2019로 핸들 코드 업데이트 : for-next 루틴을 약간 변경했는데, 그 이유는 프런트 엔드 사용자가 마우스 오른쪽 버튼으로 "대체 텍스트"를 더 쉽게 변경할 수 있다는 것입니다.
For Each ShapeObj In processPage.Shapes
If Left(ShapeObj.AlternativeText, 1) = "[" Then
'If Left(ShapeObj.Title, 1) = "[" Then
Dim sStart, sEnd As Integer
' extract property from between square brackets
sStart = 2
'sEnd = InStr(2, ShapeObj.Title, "]")
sEnd = InStr(2, ShapeObj.AlternativeText, "]")
'propname = Trim(Mid(ShapeObj.Title, sStart, sEnd - 2))
propname = Trim(Mid(ShapeObj.AlternativeText, sStart, sEnd - 2))
ShapeObj.TextFrame.TextRange.Text = getProperty(propname, ShapeObj.TextFrame.TextRange.Text)
End If
Next ' obj