2016-06-27 26 views
-1

Excelの値に基づいてパワーポイント内にテーブルを生成して設定する大きなマクロがあります。私は手動で特定のパラメータに基づいて行のサイズを変更しますが、テキストがその特定のセルからオーバーフローする場合、行の自動サイズ変更を防止できないような非常に厄介な問題が発生しました。私はtextframetextframe2 "autosize"プロパティを使用しようとしましたが、指定した値が範囲外であるという最初の呼び出しでエラーが発生します。エラー番号は-2147024809(80070057)ですが、私はそれが何らかの使用になるとは考えていません。オーバーフローするときに手動でテキストを短くするコードを書く以上の自動サイズ変更を防ぐ方法はありますか?vbaで生成されたPowerPointテーブルの自動サイズ変更を防止する

答えて

1

RGA、

あなたの質問に対する答えははいです。あなたはこれを行うことができます。 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 

PPT 2016年にいくつかの機能を復元するために、私はに私のコードを書き直すことにしました表示される行の数を制限して、 'resize'テーブル呼び出しを防止します。

... 
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

私はずっと前にこの質問をしましたが、それがどんなプログラムであったかを覚えていないことさえあります。しかし、あなたが新しいユーザーであり、きれいに徹底的な答えを与えてくれたので、私はそれが私が持っていた問題を解決することができると思われるので、解決策としてそれを受け入れます。コミュニティへようこそ! – RGA

0

テキストが多すぎてセルに収まらないときに、何をしたいですか? PowerPoint内にセルを入力することで、追加のテキストが表示されないため、セルのオーバーフローに基づいて行の自動サイズ変更を防止するためのPowerPointのUIコンセプトはありません。したがって、同じことをするAPIはありません。行の高さが元の値に戻るまで、テキストを挿入する前後に行を記録し、単語ごとに切り捨てます。

関連する問題