「powerpoint vba shape.textframe.textrange縦書き」
という検索でアクセスがありました。
PowerPoint VBAで、図形内の文字列を縦書きにするには、どのようなオブジェクト式を書けばいいのかを探していらした方による検索です。
「textframe.textrange vba powerpoint orientation」
という検索キーワードも同じことを探していらした可能性が高いと想像しています。
縦書き・横書きを指定するプロパティはTextRangeではなくTextFrameに
いずれも
「textframe.textrange」
というキーワードが入っていますから、TextRangeオブジェクトに、縦書き・横書きを指定するプロパティがあると考えていらしたのでしょうけれど、違います。
縦書き・横書きを指定するプロパティは、TextRagneオブジェクトではなく、TextFrameオブジェクトに用意されています。
TextFrameオブジェクトのOrientationプロパティで、
縦書き・横書きを指定できます。
Shape内文字列を縦書きにするサンプルマクロ
以下のSubプロシージャを実行すると、アクティブなプレゼンテーションファイルの、1枚目のスライドの、1つ目のShapeの文字列が縦書きになります。ActivePresentation.Slides(1).Shapes(1) _
.TextFrame.Orientation = msoTextOrientationVerticalFarEast
End Sub
TextFrame.Orientationプロパティに、
msoTextOrientationVerticalFarEast
または
msoTextOrientationVertical
を指定すると縦書きとなります。
msoTextOrientationVerticalを指定した場合は、複数行になったとき左から右に行が並んでしまうので、まあmsoTextOrientationVerticalFarEastでしょう。
オブジェクトブラウザーを使いましょう
「textframe.textrange vba powerpoint orientation」
という検索をなさった方が、オブジェクトブラウザーを使えれば、TextFrame.Orientationプロパティを見つけられたはずです。
オブジェクトブラウザーで「orientation」を完全一致で検索すれば、下図のような結果となります。
「textframe.textrange vba powerpoint orientation」
という検索キーワードを使われたということは、TextFrameオブジェクトの存在は知ってらっしゃるのですから、TextFrame.Orientationプロパティに気づかないほうが、難しかっただろうと思っています。
Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » VBAでShapeを縦書きに