Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフオブジェクトにテキストボックスを追加する

VBAでグラフオブジェクトにテキストボックスを追加する

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「excel vba グラフ テキストボックス」
「エクセルマクロ グラフにテキストボックス」
といった検索キーワードで、このサイト・インストラクターのネタ帳へのアクセスが時折あります。

グラフにテキストボックスを追加する、Excel VBA(Visual Basic for Applications)のコードを探していた方による検索でしょうか。

グラフシートにテキストボックスを作成するマクロを既にご紹介していますので、この記事ではグラフオブジェクトにテキストボックスを作成するマクロを2つご紹介しておきます。

[スポンサードリンク]

アクティブなグラフオブジェクトにテキストボックスを作成するサンプルマクロ

グラフを選択しておいて、以下のSubプロシージャを実行すると、アクティブなグラフオブジェクト内に「サンプル文字列」と表示されたテキストボックスが作成されます。

Sub アクティブなグラフオブジェクトにテキストボックス()
 Dim shp As Shape

 Set shp = ActiveChart.Shapes.AddTextbox( _
   Orientation:=msoTextOrientationHorizontal, _
   Left:=0, _
   Top:=0, _
   Width:=100, _
   Height:=50)
 shp.TextFrame2.TextRange.Text = "サンプル文字列"
End Sub

テキストボックスを作成する、ShapesコレクションオブジェクトのAddTextBoxメソッドを利用するオブジェクト式は、既にご紹介しているグラフシートにテキストボックスを追加する場合と同じです。

Shapesコレクションオブジェクトを取得する、上位のオブジェクトを取得するオブジェクト式がActiveChartプロパティになっている部分だけが異なります。

アクティブなワークシート上のグラフオブジェクトにテキストボックスを追加するサンプルマクロ

以下のようなSubプロシージャで、アクティブなワークシート上のすべてのグラフオブジェクトに、テキストボックスを追加できます。

Sub アクティブシートのグラフオブジェクトにテキストボックス()
 Dim cho As ChartObject
 Dim shp As Shape

 For Each cho In ActiveSheet.ChartObjects
  Set shp = cho.Chart.Shapes.AddTextbox( _
    Orientation:=msoTextOrientationHorizontal, _
    Left:=0, _
    Top:=0, _
    Width:=100, _
    Height:=50)
  shp.TextFrame2.TextRange.Text = "サンプル文字列"
 Next cht
End Sub

アクティブなシート上のすべてのグラフオブジェクトに対してFor Each~Nextループを回して、
  For Each cho In ActiveSheet.ChartObjects

ChartObjectオブジェクトのChartオブジェクト内のShapesコレクションオブジェクトのAddTextboxメソッドを利用しています。
   Set shp = cho.Chart.Shapes.AddTextbox( _

ChartObjectオブジェクトの中にChartオブジェクトが存在するという部分がポイントでしょう。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » グラフ・Chart » VBAでグラフオブジェクトにテキストボックスを追加する

「グラフ・Chart」の記事一覧

検索


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

.