2012-01-24 1 views
1

전 PowerPoint 2010 AddIn을 쓰고 있습니다.PowerPoint의 슬라이드에서 셰이프 식별 ID/제목/무엇이든 사용하는 VSTO API

  1. 정의 레이아웃의 큰 거래는 프리젠 테이션이 끝나면 만들어진 몇 가지 일반적인 작업을 자동화
  2. 쓰기 플러그인을 슬라이드로 (.potx *) 파워 포인트 템플릿 만들기 : 간단히 말해서 이것은 내가 할 것입니다. 그 중 하나는 각 섹션의 첫 번째 슬라이드로 Agenda Slide (SlideMaster의 레이아웃으로 정의 됨)를 삽입하는 것입니다.
  3. Agenda Slide를 삽입 한 후 (아주 쉽게 : newAgendaSlide.MoveToSectionStart(sectionNumber)) 두 개의 Shape 객체의 텍스트를 설정해야합니다 (하나는 슬라이드 상단에, 다른 하나는 하단/오른쪽 모서리에 있습니다. 머리글 & 바닥 글)을 현재 섹션의 현재 슬라이드 섹션에있는 현재 슬라이드 섹션의 이름으로 바꿉니다.

그리고 지금, 나는 섹션의 제목을 얻는 방법을 알고

Presentation.SectionProperties.Name(sectionNumber) 

을하고 난 Slide 객체에있는 Shape 객체를 반복하는 방법을 알고있다. 하지만 오른쪽에 액세스하는 방법을 모르겠다 모양. 예를 들어 내 머리글/바닥 글 모양이 특정 값으로 설정된 Id를 가질 수 있는지 확신 할 수 없습니까? Layout의 Shape에 어떤 종류의 속성을 설정하는 방법이 있습니까? 그런 다음 동일한 속성이 Slide에서 동일한 값을 가질 것을 완전히 확신 할 수 있습니까?

합계 (그리고 잘하면 알 수 있도록) : x 모양의 레이아웃 슬라이드 (슬라이드 마스터에서)를 만들고 실제 프레젠테이션 슬라이드에서 특정 슬라이드에 액세스 할 수 있습니다.

답변

3

아마도 PPT (심하게 부러진) 바닥 글을 사용하는 대신 머리글/바닥 글 모양을 직접 삽입 할 것입니다.

태그를 사용하여 추가 한 모양을 식별 할 수 있습니다. 그것들 중 하나를 조작 할 시간이되면, 이미 슬라이드에 슬라이드가 있는지 확인하고 (추가 한 태그를 테스트합니다), 발견되지 않으면 자신의 슬라이드를 추가하십시오. AirVBA 예 :

For each oSh in oSlide.Shapes 
    If Len(oSh.Tags "MyShape") > 0 Then ' its' your footer 
    Set oFooter = oSh 
    End If 

    If oFooter is Nothing then ' not there, add one: 
    Set oFooter = ... add the shape here 
    ' add the tags 
    oFooter.Tags.Add "MyShape", "Footer" 
    With oFooter 
     ' format it, add text, whatever 
    End with 
    End if 
Next 
+0

, 롤 태그를 존중합니다 :)하지만 ... 그것은, 내가 코드에서 두 머리글/바닥 글 모양을 추가해야한다는 것을 의미하고, Slide.Shapes 컬렉션에 추가하여 슬라이드를 배치 하는가 예 : slide.Shapes.AddTextbox ...? – dragonfly

+0

이 경우 예. 그러나 셰이프가 슬라이드에 이미있는 경우 태그를 지정하면 슬라이드에서 특정 태그가있는 셰이프를 반환하는보다 일반적인 함수를 작성할 수 있습니다. 그것은 다른 상황에서 유용 할 수 있습니다. –