2024/11/05

Notes - Excel 連携:#45)グラフタイトルとテキストボックスの違い

#41)グラフの調整』から開始した ”使える” グラフにするための調整作業です。今回はグラフ右上に配置するグラフタイトルエリアです。通常のタイトルのほかに補足情報を表示できるサブタイトル欄を用意します。

両タイトルとも右寄せで配置します。タイトルが長い場合、グラフエリアにはみ出して表示し、文字の折り返しはない前提とします。


グラフタイトルは特殊?

まずは Excel でグラフタイトルの設定を確認します。フォントの設定や右寄せなど一般的な操作は可能です。ただ、[グラフ タイトルの書式設定]-[タイトルのオプション]-[サイズとプロパティ]を表示すると、オブジェクトのサイズ設定がありません。

ところが、図形メニューから追加した ”テキスト ボックス” では、次の通り、サイズの設定が可能です。このようにグラフタイトルでは、設定できないプロパティが部分的に存在するようです。


グラフタイトルの削除

将来細かな操作が必要となった場合に備え、今回はグラフタイトルは使用せず、”テキスト ボックス” でタイトルとサブタイトルを表現することとします。

標準のグラフタイトルの削除は、HasTitle プロパティに False を設定するだけです。

Sub Initialize
         ・・・
   'タイトルのセット
   'oChart.ChartTitle.Text = "ユーザ数の推移"

   oChart.HasTitle = False
         ・・・


テキストボックスの配置

グラフ内にテキストボックスを配置する方法は、『#39)名前アイコン生成 ③』で紹介しました。Shapes オブジェクトの AddLabel メソッドを使用するんでしたね。

今回は、タイトル、ダブタイトル、Y 軸ラベルでテキストボックスを使用します。そこで、オブジェクトを作成する汎用的な関数 xCreateTextBox を作成します。

引数はグラフを表す Shape オブジェクトです。テキストボックスの作成以外に共通の設定である垂直方向の中央揃えと文字色を設定しています。

Function xCreateTextBox(voShape As Variant) As Variant
   Dim oText As Variant

   Set oText = voShape.Chart.Shapes.AddLabel(msoTextOrientationHorizontal, 0, 0, 50, 10)
   With oText.TextFrame2
      '垂直方向に中央揃え
      .VerticalAnchor = msoAnchorMiddle
      '色の設定
      .TextRange.Font.Fill.ForeColor.RGB = RGB(32, 32, 32)
   End With

   Set xCreateTextBox = oText
End Function

なお、オブジェクトの配置や文字サイズなどはテキストボックス毎にバラバラになります。そのため、この関数の外側で設定する前提としています。ですので、オブジェクト作成時に初期設定しているオブジェクトの位置とサイズは適当な値で、意味はありません。


次回の予告

上記関数のテストを行います。次の通り、テキストボックスの作成して、文字をセットします。

Sub Initialize
          ・・・
   'プロット領域の設定
   oChart.PlotArea.InsideWidth = 350
   oChart.PlotArea.InsideLeft = 50
   oChart.PlotArea.InsideTop = 7
   oChart.PlotArea.InsideHeight = 170

   '関数テスト(テキストボックスの作成)
   Dim oText As Variant
   Set oText = xCreateTextBox(oShape)
   oText.TextFrame2.TextRange.Text = "Test"


   oXls.Visible = True
End Sub

※ 上記コードはテスト目的であり、以降の作業では不要です。


実行すると左と上に隙間が空きます。次回はこの挙動について整理したいと思います。


前回 Notes - Excel 連携


0 件のコメント:

コメントを投稿