Excel グラフ - 系列を数えて最後のポイントにデータ ラベルを追加する

Excel グラフ - 系列を数えて最後のポイントにデータ ラベルを追加する

グラフの最初のシリーズの最後のポイントを見つけて、データ ラベルを追加して書式設定するマクロを作成することができました。次に、グラフ内のシリーズ (番号が変わる場合があります) をカウントし、シリーズ 1 に対して行った操作を各シリーズに対して繰り返し実行するようにしたいと思います。

見事に失敗しました。試してみたが失敗した部分はコメントアウトしました。

自分がやったことをどうやってループにまとめるかがよく分かりません。

どのようなご助力でも大歓迎です。

マイケル。

Dim MyChart As Chart
Dim ChartPoints As Points
Dim ChartDataLables As DataLabel
'Dim NumberOfSeries As Series

Set MyChart = ActiveSheet.ChartObjects("Chart 1").Chart

'Set NumberOfSeries = MyChart.SeriesCollection.Count

Set ChartPoints = MyChart.SeriesCollection(1).Points
ChartPoints(ChartPoints.Count).ApplyDataLabels
Set ChartDataLables = ChartPoints(ChartPoints.Count).DataLabel

 'For Each NumberOfSeries In MyChart
 With MyChart
     With ChartDataLables
    .Position = xlLabelPositionRight
    .HorizontalAlignment = xlCenter
    .Font.Size = 8
    .NumberFormat = "0.00"
    .ShowSeriesName = True
    .Font.Name = "Arial Narrow"
     End With
 End With
  'Next NumberOfSeries
 End Sub

私のオリジナルのマクロは、Google/フォーラムの助けと試行錯誤によって作成されました。

答え1

VBA は必要ありません (VBA が好きな場合を除く)。別の値があるかどうかを評価するヘルパー シリーズを作成するだけです (私はオフセット式を使用します)。データ シリーズに「次の」値がない場合、現在の値または最後の値を返します。それ以外の場合は、#N/A を返します。次に、このヘルパー シリーズをグラフに追加し、好みに応じてラベル/書式を設定します。グラフはすべての N/A を無視し、最後のデータ ポイントのみをプロットします。これを使用して、他のキー値 (最初、高、低など) を見つけることもできます。

ここに画像の説明を入力してください

答え2

チャートの各シリーズをループします -

Option Explicit

Public Sub LoopThroughSeries()
    Dim myChart As ChartObject
    Dim mySeries As Series

    With myChart
        For Each mySeries In myChart.Chart.SeriesCollection
            'do stuff
        Next
    End With

End Sub

関連情報