前提・実現したいこと
ここに質問の内容を詳しく書いてください。
Microsoft Excel 2016にて、既に存在するグラフと同じ書式で、データ系列だけ異なる縦棒グラフをたくさん作ろうとしています。
発生している問題・エラーメッセージ
データ系列を変更すると、系列の塗りつぶしの書式が変わってしまいます(Excelのバグ?)。 そこで、塗りつぶしの書式を取得して、データ系列を変更して、 その後、取得した塗りつぶしを再度代入しようとしましたが、塗りつぶしの取得ができません。 ObjectThemeColorが正常に取得できず、0が返ってきてしまうようで、 データ系列の変更後に、これを代入しようとしたときにエラーが発生します。
該当のソースコード
Microsoft
1Private Type ChartFormatType 2 msoFill_ForeColor_ObjectThemeColor As MsoThemeColorIndex 3 msoFill_BackColor_ObjectThemeColor As MsoThemeColorIndex 4 msoFill_Pattern As MsoPatternType 5End Type 6 7Sub SetGraphDataSeries() 8 9 Dim lngCo As Long 10 For lngCo = 1 To 2 11 With wksGraph.ChartObjects(lngCo).Chart 12 13 Dim cft As ChartFormatType 14 15 Dim lngSeries As Long 16 For lngSeries = 1 To 1 '4 17 ' 書式の取得 18 With .SeriesCollection(lngSeries).Format 19 cft.msoFill_ForeColor_ObjectThemeColor = .Fill.ForeColor.ObjectThemeColor 20 cft.msoFill_BackColor_ObjectThemeColor = .Fill.BackColor.ObjectThemeColor 21 cft.msoFill_Pattern = .Fill.Pattern 22 End With 23 ' データ系列の変更 24 .SeriesCollection(1).Values = "='有意差まとめ(2)b'!$B$72:$B$79" 25 ' 書式の再設定 26 With .SeriesCollection(lngSeries).Format 27 .Fill.ForeColor.ObjectThemeColor = cft.msoFill_ForeColor_ObjectThemeColor 28 .Fill.BackColor.ObjectThemeColor = cft.msoFill_BackColor_ObjectThemeColor 29 Call .Fill.Patterned(cft.msoFill_Pattern) 30 End With 31 Next 32 33 34 End With 35 36 Next 37 38End Sub
試したこと
MsoThemeColorIndex変数であるObjectThemeColorの取得/設定だけではなく、
ひとつ上位階層のColorFormatオブジェクトのForeColorの取得/設定も試みました。
しかし、こちらはNewしようとしたときにエラーが発生します。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー