2016-06-27 3 views
0

나는 이것을 잠시 동안 연구 해왔고 Powerpoint VBA가 개체 (텍스트 상자 또는 테이블)가 페이지 크기파워 포인트 텍스트 상자가 페이지 크기를 초과하는지 확인

내가 관리하려고하는 특정 응용 프로그램은 Excel에서 PPT 테이블로 텍스트를 보낼 때, 특정 데이터 표식의 찾기/바꾸기를 통해 텍스트의 특정 크기를 모르므로 오버플로 할 수 있습니다. 페이지 경계.

텍스트를 축소 할 수 없기 때문에 크기가 충실하게 디자인을 유지해야합니다.

이 오버플로가 발생했을 때 측정하고 VB를 사용하여 Excel에서 내 텍스트를 계속 보낼 수있는 새 페이지를 만들려고합니다.

지금 당장 나는 페이지 템플릿을 15 행으로 제한 한 다음 페이지의 흐름을 수동으로 조정합니다. 내 유일한 선택 일 수도 있지만 질문을 제기 할 것이라고 생각했습니다.

+0

. 그런 다음 마지막 행을 채우면 데이터가 다음 페이지로 이동합니다. 'K = (LastRow/15) + (1') (15) (페이지에 맞게 행)으로 행을 분할' 는 '마커 추천 "@의 PROG1. *"는 그런 경우에'새 row' 시작 ' InStr (1, CStr (i - 2)/15), ".") = 0 그러면 새 페이지 시작 k = k + 1 페이지 카운터 증가 ' 'End If ' End If ' –

답변

0

이것은 당신이 시작 얻어야한다 : 다음 (예를 들어, 15 아래의 예에서) 행을 통해 내가 가지고있는 데이터를 분할, 페이지 템플릿을 복용하고 행 세트 번호에 그것을 고정하고

Option Explicit 

Sub TextboxCheck() 

Dim shp As Shape 
Dim sld As Slide 
Dim sldHeight As Long 

sldHeight = ActivePresentation.PageSetup.SlideHeight 

For Each sld In ActivePresentation.Slides 
    For Each shp In sld.Shapes 
     If shp.Type = msoTextBox Then 
      If shp.Top + shp.Height > sldHeight Then 
       'Add your code here for moving the text to a new slide 
      End If 
     End If 
    Next shp 
Next sld 

End Sub 
+0

고마워, 그래, 나는'ActivePresentation.PageSetup.SlideHeight'에 대해 몰랐다. 그 트릭을해야한다. –

+0

기꺼이 도와 드리겠습니다! – TheEngineer

+1

텍스트 상자가 추가 된 텍스트를 수용 할 수 있도록 커지도록 설정되어 있으면 작동합니다. 그렇지 않다면, shp.height 등은 텍스트 상자의 크기를 알려주지 만, 텍스트 상자의 크기는 줄 수 없습니다. 또한 shp.TextFrame.TextRange.BoundTop, BoundHeight 등을 볼 수 있습니다. 텍스트가 들어있는 모양과 관계없이 (또는 밖으로 유출되는) 텍스트의 실제 크기를 나타냅니다. –