質問編集履歴
1
見やすいように改行を入れました。
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
Excelで、既存グラフと同じ書式のグラフをたくさん作りたい。
|
1
|
+
Excelで、既存のグラフと同じ書式のグラフをたくさん作りたい。
|
body
CHANGED
@@ -8,18 +8,20 @@
|
|
8
8
|
```
|
9
9
|
データ系列を変更すると、系列の塗りつぶしの書式が変わってしまいます(Excelのバグ?)。
|
10
10
|
|
11
|
+
そこで、塗りつぶしの書式を取得して、データ系列を変更して、
|
11
|
-
そ
|
12
|
+
その後、取得した塗りつぶしを再度代入しようとしましたが、塗りつぶしの取得ができません。
|
12
13
|
|
13
|
-
ObjectThemeColorが正常に取得できず、0が返ってきてしまうようで、
|
14
|
+
ObjectThemeColorが正常に取得できず、0が返ってきてしまうようで、
|
15
|
+
データ系列の変更後に、これを代入しようとしたときにエラーが発生します。
|
14
16
|
```
|
15
17
|
|
16
18
|
### 該当のソースコード
|
17
19
|
|
18
20
|
```Microsoft Excel VBA
|
19
21
|
Private Type ChartFormatType
|
20
|
-
|
22
|
+
msoFill_ForeColor_ObjectThemeColor As MsoThemeColorIndex
|
21
|
-
|
23
|
+
msoFill_BackColor_ObjectThemeColor As MsoThemeColorIndex
|
22
|
-
|
24
|
+
msoFill_Pattern As MsoPatternType
|
23
25
|
End Type
|
24
26
|
|
25
27
|
Sub SetGraphDataSeries()
|
@@ -33,18 +35,18 @@
|
|
33
35
|
Dim lngSeries As Long
|
34
36
|
For lngSeries = 1 To 1 '4
|
35
37
|
' 書式の取得
|
36
|
-
With .SeriesCollection(lngSeries).Format
|
38
|
+
With .SeriesCollection(lngSeries).Format
|
37
|
-
cft.
|
39
|
+
cft.msoFill_ForeColor_ObjectThemeColor = .Fill.ForeColor.ObjectThemeColor
|
38
|
-
cft.
|
40
|
+
cft.msoFill_BackColor_ObjectThemeColor = .Fill.BackColor.ObjectThemeColor
|
39
|
-
cft.
|
41
|
+
cft.msoFill_Pattern = .Fill.Pattern
|
40
42
|
End With
|
41
43
|
' データ系列の変更
|
42
44
|
.SeriesCollection(1).Values = "='有意差まとめ(2)b'!$B$72:$B$79"
|
43
45
|
' 書式の再設定
|
44
|
-
With .SeriesCollection(lngSeries).Format
|
46
|
+
With .SeriesCollection(lngSeries).Format
|
45
|
-
.ForeColor.ObjectThemeColor = cft.
|
47
|
+
.Fill.ForeColor.ObjectThemeColor = cft.msoFill_ForeColor_ObjectThemeColor
|
46
|
-
.BackColor.ObjectThemeColor = cft.
|
48
|
+
.Fill.BackColor.ObjectThemeColor = cft.msoFill_BackColor_ObjectThemeColor
|
47
|
-
|
49
|
+
Call .Fill.Patterned(cft.msoFill_Pattern)
|
48
50
|
End With
|
49
51
|
Next
|
50
52
|
|