Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » VBAでShapeを縦書きに

対象:PowerPoint2007, PowerPoint2010, PowerPoint2013, Windows版PowerPoint2016

VBAでShapeを縦書きに

「powerpoint vba shape.textframe.textrange縦書き」
という検索でアクセスがありました。

PowerPoint VBAで、図形内の文字列を縦書きにするには、どのようなオブジェクト式を書けばいいのかを探していらした方による検索です。

「textframe.textrange vba powerpoint orientation」
という検索キーワードも同じことを探していらした可能性が高いと想像しています。

[スポンサードリンク]

縦書き・横書きを指定するプロパティはTextRangeではなくTextFrameに

いずれも
「textframe.textrange」
というキーワードが入っていますから、TextRangeオブジェクトに、縦書き・横書きを指定するプロパティがあると考えていらしたのでしょうけれど、違います。

縦書き・横書きを指定するプロパティは、TextRagneオブジェクトではなく、TextFrameオブジェクトに用意されています。

TextFrameオブジェクトのOrientationプロパティで、

VBAでShapeを縦書きに

縦書き・横書きを指定できます。

Shape内文字列を縦書きにするサンプルマクロ

以下のSubプロシージャを実行すると、アクティブなプレゼンテーションファイルの、1枚目のスライドの、1つ目のShapeの文字列が縦書きになります。
Sub 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」を完全一致で検索すれば、下図のような結果となります。

VBAでShapeを縦書きに

「textframe.textrange vba powerpoint orientation」
という検索キーワードを使われたということは、TextFrameオブジェクトの存在は知ってらっしゃるのですから、TextFrame.Orientationプロパティに気づかないほうが、難しかっただろうと思っています。

[スポンサードリンク]

Home » パワーポイントマクロ・PowerPoint VBAの使い方 » TextFrame・TextRange » VBAでShapeを縦書きに

「TextFrame・TextRange」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.