Excel VBA 図形にテキストを追加する TextFrameオブジェクト

スポンサーリンク

図形にテキストを追加する TextFrame【テキストフレーム】オブジェクト

TextFrame【テキストフレーム】は、図形の「テキストレイアウト枠」を表す、オブジェクトです。
図形を表す、Shape【シェイプ】オブジェクトのTextFrame【テキストフレーム】プロパティを使用して取得します。

TextFrame【テキストフレーム】プロパティ

図形の「テキストレイアウト枠」を表すTextFrame【テキストフレーム】オブジェクトを取得するにはShape【シェイプ】オブジェクトのTextFrame【テキストフレーム】プロパティを使用します。

TextFrame【テキストフレーム】プロパティの書式と設定値の説明

オブジェクト.TextFrame


TextFrame【テキストフレーム】オブジェクトのメソッド一覧

メソッド内容
Characters
【キャラクターズ】
図形のレイアウト枠に含まれる文字範囲を表す
Characters【キャラクターズ】 オブジェクトを返します。

TextFrame【テキストフレーム】オブジェクトの主なプロパティ一覧

プロパティ内容
AutoMargins
【オートマージンズ】
テキスト枠の余白を自動計算するかどうかを
設定または取得します。
AutoSize
【オートサイズ】
指定されたオブジェクトの大きさを
境界線内のテキストに合わせて自動的に
変更するかしないかを設定または取得します。
HorizontalAlignment
【ホリゾンタルアライメント】
テキストの水平位置を設定または取得します。
HorizontalOverflow
【ホリゾンタルオーバーフロー】
水平方向のレイアウト枠をはみ出た
テキストの表示方法を設定または取得します。
VerticalAlignment
【バーティカルアライメント】
テキストの垂直位置を設定または取得します。
VerticalOverflow
【バーティカルオーバーフロー】
垂直方向のレイアウト枠をはみ出た
テキストの表示方法を設定または取得します。
MarginBottom
【マージンボトム】
レイアウト枠の下方向の余白を設定または取得します。
MarginLeft
【マージンレフト】
レイアウト枠の左方向の余白を設定または取得します。
MarginRight
【マージンライト】
レイアウト枠の右方向の余白を設定または取得します。
MarginTop
【マージントップ】
レイアウト枠の上方向の余白を設定または取得します。
Orientation
【オリエンテーション】
レイアウト枠内の文字列の向きを設定または取得します。

Characters【キャラクターズ】メソッド

図形のレイアウト枠に含まれる参照する文字範囲を表すCharacters【キャラクターズ】 オブジェクトを取得するには、TextFrame【テキストフレーム】オブジェクトのCharacters【キャラクターズ】メソッドを使用します。

Characters【キャラクターズ】 オブジェクトは、レイアウト枠内に文字を追加したり文字書式を設定したりすることができます。

Characters【キャラクターズ】メソッドの書式と設定値(引数)の説明

[]内は省略可能です。
オブジェクト.Characters( [Start, Length] )

  • オブジェクト(必須)
    TextFrame【テキストフレーム】オブジェクトを返すオブジェクト式を指定します。
  • Start【スタート】(省略可)
    範囲の何文字目から取得するかを指定します。この引数に 1 を設定するか省略すると、その範囲の先頭から取得します。
  • Length【レングス】(省略可)
    取得する文字数を指定します。この引数を省略すると、引数 Start 文字範囲より後の全体を取得します。

AutoMargins【オートマージンズ】プロパティ

テキスト枠の余白を自動計算するかどうかを設定または取得するには、TextFrame【テキストフレーム】オブジェクトのAutoMargins【オートマージンズ】プロパティを使用します。

AutoMargins【オートマージンズ】プロパティの書式と設定値の説明

【設定】
オブジェクト.AutoMargins = 設定値

  • オブジェクト(必須)
    TextFrame【テキストフレーム】オブジェクトを返すオブジェクト式を指定します。
  • 設定値(必須)
    設定値内容
    False(既定値)余白を自動計算しません。
    True余白を自動計算します。

AutoSize【オートサイズ】プロパティ

指定されたオブジェクトの大きさを境界線内のテキストに合わせて、自動的に変更するかしないかを設定または取得するにはTextFrame【テキストフレーム】オブジェクトのAutoSize【オートサイズ】プロパティを使用します。

AutoSize【オートサイズ】プロパティの書式と設定値の説明

【設定】
オブジェクト.AutoSize = 設定値

  • オブジェクト(必須)
    TextFrame【テキストフレーム】オブジェクトを返すオブジェクト式を指定します。
  • 設定値(必須)
    設定値内容
    Falseテキスト枠の大きさを変更しません。(既定値)
    Trueテキストに合わせてテキスト枠の大きさを自動で変更します。

HorizontalAlignment【ホリゾンタルアライメント】プロパティ

テキストの水平位置を設定または取得するには、TextFrame【テキストフレーム】オブジェクトの
HorizontalAlignment【ホリゾンタルアライメント】プロパティを使用します。

HorizontalAlignment【ホリゾンタルアライメント】プロパティの書式と設定値の説明

【設定】
オブジェクト.HorizontalAlignment = 設定値

  • オブジェクト(必須)
    TextFrame【テキストフレーム】オブジェクトを返すオブジェクト式を指定します。
  • 設定値(必須)
    指定されたオブジェクトの横位置の配置を表すXlHAlign列挙型の定数を設定します。

    XlHAlign列挙型の定数
    定数内容
    xlHAlignLeft-4131左揃え(既定値)
    xlHAlignRight-4152右揃え
    xlHAlignJustify-4130両端揃え
    xlHAlignDistributed-4117均等割り付け
    xlHAlignCenter-4108中央揃え
    xlHAlignGeneral1データの種類に従って揃える
    xlHAlignFill5ページ幅に合わせる
    xlHAlignCenterAcrossSelection7選択肢の中央揃え

HorizontalOverflow【ホリゾンタルオーバーフロー】プロパティ

水平方向のレイアウト枠をはみ出たテキストの表示方法を設定または取得するには、TextFrame【テキストフレーム】オブジェクトのHorizontalOverflow【ホリゾンタルオーバーフロー】プロパティを使用します。
※TextFrame2【テキストフレームツゥ】オブジェクトのWordWrap【ワードワープ】プロパティに「改行しない」を表す「msoFalse」が設定されているときとTextFrame【テキストフレーム】オブジェクトの
AutoSize【オートサイズ】プロパティにテキストに合わせてテキスト枠の大きさを変更しない、既定値の「False」が設定されているときに設定が反映します。

HorizontalOverflow【ホリゾンタルオーバーフロー】プロパティの書式と設定値の説明

【設定】
オブジェクト.HorizontalOverflow = 設定値

  • オブジェクト(必須)
    TextFrame【テキストフレーム】オブジェクトを返すオブジェクト式を指定します。
  • 設定値(必須)
    レイアウト枠の水平方向のオーバーフロー設定を指定します。XlOartHorizontalOverflow列挙型の定数で指定します。

    XlOartHorizontalOverflow列挙型の定数
    定数内容
    xlOartHorizontalOverflowOverflow0テキストはレイアウト枠から
    はみ出すことができます。
    xlOartHorizontalOverflowClip1水平方向のレイアウト枠に
    収まらないテキストを非表示にします。

VerticalAlignment【バーティカルアライメント】プロパティ

テキストの垂直位置を設定または取得するには、TextFrame【テキストフレーム】オブジェクトの
VerticalAlignment【バーティカルアライメント】プロパティを使用します。

VerticalAlignment【バーティカルアライメント】プロパティの書式と設定値の説明

【設定】
オブジェクト.VerticalAlignment = 設定値

  • オブジェクト(必須)
    TextFrame【テキストフレーム】オブジェクトを返すオブジェクト式を指定します。
  • 設定値(必須)
    指定されたオブジェクトの横位置の配置を表すXlVAlign列挙型の定数を設定します。

    XlVAlign列挙型の定数
    定数内容
    xlVAlignBottom-4107下揃え
    xlVAlignCenter-4108中央揃え
    xlVAlignDistributed-4117均等割り付け
    xlVAlignJustify-4130両端揃え
    xlVAlignTop-4160上揃え(既定値)

VerticalOverflow【バーティカルオーバーフロー】プロパティ

水平方向のレイアウト枠をはみ出たテキストの表示方法を設定または取得するには、TextFrame【テキストフレーム】オブジェクトのVerticalOverflow【バーティカルオーバーフロー】プロパティを使用します。
※TextFrame【テキストフレーム】オブジェクトのAutoSize【オートサイズ】プロパティにテキストに合わせてテキスト枠の大きさを変更しない既定値の「False」が設定されているときに設定が反映します。

VerticalOverflow【バーティカルオーバーフロー】プロパティの書式と設定値の説明

【設定】
オブジェクト.VerticalOverflow = 設定値

  • オブジェクト(必須)
    TextFrame【テキストフレーム】オブジェクトを返すオブジェクト式を指定します。
  • 設定値(必須)
    レイアウト枠の垂直方向のオーバーフロー設定を指定します。XlOartVerticalOverflow列挙型の定数で指定します。

    XlOartVerticalOverflow列挙型の定数
    定数内容
    xlOartVerticalOverflowOverflow0テキストはレイアウト枠から
    はみ出すことができます。
    xlOartVerticalOverflowClip1水平方向のレイアウト枠に
    収まらないテキストを非表示にします。
    xlOartVerticalOverflowEllipsis2垂直方向のレイアウト枠内に収まらない
    テキストを非表示にし、表示されるテキストの
    終わりに省略記号 (…) を追加します。

MarginBottom【マージンボトム】プロパティ

テキストレイアウト枠の下方向の余白を設定または取得するには、TextFrame【テキストフレーム】オブジェクトのMarginBottom【マージンボトム】プロパティを使用します。

MarginBottom【マージンボトム】プロパティの書式と設定値の説明

【設定】
オブジェクト.MarginBottom = 設定値

  • オブジェクト(必須)
    TextFrame【テキストフレーム】オブジェクトを返すオブジェクト式を指定します。
  • 設定値(必須)
    テキストレイアウト枠の下側の余白をポイント単位で設定します。

MarginLeft【マージンレフト】プロパティ

テキストレイアウト枠の左方向の余白を設定または取得するには、TextFrame【テキストフレーム】オブジェクトのMarginLeft【マージンレフト】プロパティを使用します。

MarginLeft【マージンレフト】プロパティの書式と設定値の説明

【設定】
オブジェクト.MarginLeft = 設定値

  • オブジェクト(必須)
    TextFrame【テキストフレーム】オブジェクトを返すオブジェクト式を指定します。
  • 設定値(必須)
    テキストレイアウト枠の左側の余白をポイント単位で設定します。

MarginRight【マージンライト】プロパティ

テキストレイアウト枠の右方向の余白を設定または取得するには、TextFrame【テキストフレーム】オブジェクトのMarginRight【マージンライト】プロパティを使用します。

MarginRight【マージンライト】プロパティの書式と設定値の説明

【設定】
オブジェクト.MarginRight = 設定値

  • オブジェクト(必須)
    TextFrame【テキストフレーム】オブジェクトを返すオブジェクト式を指定します。
  • 設定値(必須)
    テキストレイアウト枠の右側の余白をポイント単位で設定します。

MarginTop【マージントップ】プロパティ

テキストレイアウト枠の上方向の余白を設定または取得するには、TextFrame【テキストフレーム】オブジェクトのMarginTop【マージントップ】プロパティを使用します。

MarginTop【マージントップ】プロパティの書式と設定値の説明

【設定】
オブジェクト.MarginTop = 設定値

  • オブジェクト(必須)
    TextFrame【テキストフレーム】オブジェクトを返すオブジェクト式を指定します。
  • 設定値(必須)
    テキストレイアウト枠の上側の余白をポイント単位で設定します。

Orientation【オリエンティーション】プロパティ

テキストレイアウト枠内の文字列の向きを設定または取得するには、TextFrame【テキストフレーム】オブジェクトのOrientation【オリエンティーション】プロパティを使用します。

Orientation【オリエンティション】プロパティの書式と設定値の説明

【設定】
オブジェクト.Orientation = 設定値

  • オブジェクト(必須)
    TextFrame【テキストフレーム】オブジェクトを返すオブジェクト式を指定します。
  • 設定値(必須)
    テキストの方向をMsoTextOrientation列挙型の定数で指定します。

    MsoTextOrientation列挙型の定数
    定数内容
    msoTextOrientationHorizontal1水平方向(既定値)
    msoTextOrientationUpward2下から上
    msoTextOrientationDownward3上から下
    msoTextOrientationVerticalFarEast4垂直方向
    (アジアの言語のサポート用)
    msoTextOrientationVertical5垂直方向
    msoTextOrientationHorizontalRotatedFarEast6水平方向および回転
    (アジアの言語のサポート用)

    ※通常、日本語環境では、横書きの場合は「msoTextOrientationHorizontal」縦書きの場合は「msoTextOrientationVerticalFarEast」を設定します。


楕円(図形)の中心に文字列(テキスト)を設定するコードと解説

Sub 図形テキスト()
Dim 範囲 As Range
Dim 図形 As Shape
Set 範囲 = Range("B2:F10")
Set 図形 = ActiveSheet.Shapes.AddShape(msoShapeOval, _
           範囲.Left, 範囲.Top, 範囲.Width, 範囲.Height)
図形.Fill.ForeColor.RGB = RGB(255, 0, 0)
With 図形.TextFrame
 .Characters.Text = "Excel VBA"
 .Characters.Font.Color = RGB(0, 0, 255)
 .Characters.Font.Size = 40
 .HorizontalAlignment = xlHAlignCenter
 .VerticalAlignment = xlVAlignCenter
End With
End Sub
2行目【Dim 範囲 As Range】
図形の位置や大きさの基準となるセル範囲を格納する変数「範囲」をオブジェクト型(Range)で宣言します。


3行目【Dim 図形 As Shape】
作成した図形を格納する変数「図形」をオブジェクト型(Shape)で宣言します。


4行目【Set 範囲 = Range(“B2:F10”)】
図形の位置と大きさの基準となるセル範囲をRangeプロパティで指定してオブジェクト変数「範囲」にSet【セット】キーワードを使用して代入します。


5行目~6行目【Set 図形 = ActiveSheet.Shapes.AddShape(msoShapeOval, _
範囲.Left, 範囲.Top, 範囲.Width, 範囲.Height)】

Shapes【シェイプス】コレクションのAddShape【アドシェイプ】メソッドを使用して図形を表すShape【シェイプ】オブジェクトを取得しオブジェクト変数「図形」にSet【セット】キーワードを使用して代入します。


7行目【図形.Fill.ForeColor.RGB = RGB(255, 0, 0)】
変数「図形」に格納されているShape【シェイプ】オブジェクトのFill【フィル】プロパティを使用して、図形の書式を表すFillFormat【フィルフォーマット】オブジェクトを取得し、ForeColor【フォアカラー】プロパティで色の書式を表すColorFormat【カラーフォーマット】オブジェクトを取得してRGB【アールジービー】プロパティにRGB関数で図形の塗りつぶしの色を赤に設定します。


8行目【With 図形.TextFrame】
変数「図形」に格納されているShape【シェイプ】オブジェクトのTextFrame【テキストフレーム】プロパティでテキストレイアウト枠を表すTextFrame【テキストフレーム】オブジェクトを取得してWith【ウィズ】ステートメントで指定します。


9行目【.Characters.Text = “Excel VBA”】
With【ウィズ】ステートメントで指定したTextFrame【テキストフレーム】オブジェクトのCharacters【キャラクターズ】メソッドを使用して図形のレイアウト枠に含まれる文字範囲を表す
Characters【キャラクターズ】 オブジェクトを取得し、Text【テキスト】プロパティを使用して文字列を設定します。


10行目【.Characters.Font.Color = RGB(0, 0, 255)】
上記と同じく、文字列を参照して、Font【フォント】プロパティでFont【フォント】オブジェクトを取得し、Color【カラー】プロパティにRGB関数で青を設定して文字列に色を設定します。


11行目【 .Characters.Font.Size = 40】
文字列のサイズをFont【フォント】オブジェクトのSize【サイズ】プロパティで40に設定します。


12行目【 .HorizontalAlignment = xlHAlignCenter】
TextFrame【テキストフレーム】オブジェクトのHorizontalAlignment【ホリゾンタルアライメント】プロパティを使用して文字列の水平位置を中央揃えに設定します。


13行目【.VerticalAlignment = xlVAlignCenter】
TextFrame【テキストフレーム】オブジェクトのVerticalAlignment【バーティカルアライメント】プロパティを使用して文字列の垂直位置を中央揃えに設定します。


実行結果


以上で、図形にテキストを追加する TextFrame【テキストフレーム】オブジェクトについての解説を終了します。ありがとうございました。

スポンサーリンク

関連記事・広告