図のような円グラフを凡例事にデータラベルの編集(分類名、値、%表示、太字、10.5サイズ)、グラフカラーを表の色に着色するマクロを作成したのですが、
開始するとデータラベルは表の最後の値となり、データラベルを抽出した「DL = .Text」が空白となってしまい、「インデックスが有効範囲にありません」とエラーが出てしまいます。
問題点は
①データラベルが全て表最後の値になってしまう。
②「インデックスが有効範囲にありません」のエラー表示
上記2点の改善点はどこなのでしょうか。
ご教示お願い致します。
Sub color() Dim n As Integer Dim c As Object, a As Object, pt As Object, color As Object Dim dt As Variant Dim DL As String For Each c In ActiveChart.FullSeriesCollection With c With .Format.Line .Visible = msoTrue .ForeColor.ObjectThemeColor = msoThemeColorBackground1 .ForeColor.TintAndShade = 0 .ForeColor.Brightness = 0 .Transparency = 0 End With Select Case .ChartType Case xlPie '円 For Each pt In .Points n = 2 'Debug.Print .Formula If pt.HasDataLabel = True Then With pt.DataLabel .ShowCategoryName = True .ShowPercentage = True .NumberFormat = "0.0%" .Format.TextFrame2.TextRange.Font.Bold = msoTrue .Format.TextFrame2.TextRange.Font.Size = 10.5 If .ShowCategoryName And .ShowPercentage And .ShowValue Then DL = .Text dt = Split(.Text, ",") For Each color In c.Points If dt(0) = Cells(2, n) Then pt.Interior.color = Cells(23, n).DisplayFormat.Interior.color n = n + 1 Else n = n + 1 End If Next End If End With End If Next Case Else End Select End With Next End Sub
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。