엑셀 값을 기준으로 파워 포인트에 테이블을 생성하고 채우는 대형 매크로가 있습니다. 나는 수동으로 특정 매개 변수를 기반으로 행의 크기를 조정하지만 텍스트가 특정 셀에서 오버 플로우 될 경우 자동 크기 조정에서 행을 막을 수없는 매우 성가신 문제가 발생했습니다. textframe
및 textframe2
"autosize"속성을 사용하여 시도했지만 첫 번째 호출에서 지정된 값이 범위를 벗어났다는 오류가 발생합니다. 오류 번호는 -2147024809 (80070057)입니다. 오버 플로우 될 때 수동으로 텍스트를 줄이기 위해 코드를 작성하는 것보다이 자동 크기 조정을 방지 할 수있는 방법이 있습니까?vba에서 생성 된 파워 포인트 테이블의 자동 크기 조정 방지
-1
A
답변
1
RGA,
질문에 대한 대답은 yes입니다. 너는 이것을 할 수있다. 이 주제는 다음 스레드에서 설명합니다 : Understanding format of tables in PowerPoint (VBA 2010) (resize text to cell)
그러나이 기술이 ppt 2016에서 여전히 작동하는지는 알 수 없습니다. 구현 된 코드가 있고 사무실 2016으로 업그레이드되었습니다. 이제는 작동하지 않습니다.
...
Do Until (table.rows(1).height + table.rows(2).height < TABLE_HEIGHT) or (table.Cell(2, 2).Shape.TextFrame.TextRange.Font.size = 1)
If table.Cell(1, 1).Shape.TextFrame.TextRange.Font.size = 1 Then
table.Cell(1, 1).Shape.TextFrame.TextRange.Font.size = 27
table.Cell(2, 2).Shape.TextFrame.TextRange.Font.size = table.Cell(2, 2).Shape.TextFrame.TextRange.Font.size - 1
table.Cell(2, 3).Shape.TextFrame.TextRange.Font.size = table.Cell(2, 2).Shape.TextFrame.TextRange.Font.size
Else
table.Cell(1, 1).Shape.TextFrame.TextRange.Font.size = table.Cell(1, 1).Shape.TextFrame.TextRange.Font.size - 1
End If
Loop
, I가 내 코드를 다시 작성하기로 결정 : 그와
말했다되고,이 는 (이 '적합'까지 텍스트 크기를 조절) 내 코드이었다 '크기 조정'테이블 호출을 방지하기 위해 보여 줄 수 제한 :
...
table.Cell(1, 1).Shape.TextFrame.TextRange = table.Cell(1, 1).Shape.TextFrame.TextRange.lines(1,2)
table.Cell(2, 2).Shape.TextFrame.TextRange = table.Cell(2,2).Shape.TextFrame.TextRange.lines(1,1)
table.Cell(2, 3).Shape.TextFrame.TextRange = table.Cell(2, 3).Shape.TextFrame.TextRange.lines(1,1)
이론적으로, 당신은 .height의를 사용할 수 있습니다; .Textrange; 와 글꼴의 높이가 텍스트를 맞추기 위해 필요한 글꼴의 크기를 알아내는 데 사용됩니다.
0
셀에 넣을 텍스트가 너무 많으면 어떻게 될까요? PowerPoint의 셀에 입력하여 추가 텍스트를 표시 할 곳이 없으므로 셀 오버플로를 기반으로 행 자동 크기 조정을 방지하기 위해 PowerPoint에 UI 개념이 없습니다. 따라서 동일한 작업을 수행 할 API가 없습니다. 전후에 행을 기록하고 텍스트를 삽입 한 후 행 높이가 원래 값으로 돌아갈 때까지 말 한마디로 단어를 자릅니다.
저는 정직하게 말하면이 질문을 오래 전부터 물어 보았고 어떤 프로그램을 참조했는지 기억이 나지 않습니다. 그러나 새로운 사용자이고 아름답게 철저한 답변을 주었기 때문에 내가 가진 문제를 해결할 수 있다고 생각하기 때문에 해결책으로 받아 들일 것입니다. 커뮤니티에 오신 것을 환영합니다! – RGA