1

Excel 2003 で、Series.Interior.ColorIndex を必要な値に変更しても効果がありません。最初に手動で色を変更してからマクロを実行した場合にのみ効果があります。どうやら、これにより何らかの更新メカニズムがトリガーされます。誰もこれについて説明がありますか?どういうわけかチャートでこれをトリガーする方法はありますか?.つまり、色の変更が有効になることを確認してください。

さらに、コードをステップ実行して ColorIndex を見ると、値が割り当てられても変化しません。これは Excel の多くのバグの 1 つですか?

コードは次のようになります。

Sub DoStuff()
    Dim j As Long
    For j = 1 To ActiveChart.SeriesCollection.Count
        With ActiveChart.SeriesCollection(j)
           Select Case ActiveChart.SeriesCollection(j).Name
               Case "Milk"
                  .Interior.ColorIndex = 4
               Case "Cookies"
                  .Interior.ColorIndex = 28
               Case "Honey"
                  .Interior.ColorIndex = 26
            End Select
        End With
    Next j
End Sub

編集:棒グラフを使用しています。

4

4 に答える 4

1

境界線も設定してみてください。

.Interior.ColorIndex = 4
.Border.ColorIndex = 4
.Border.Weight = xlMedium
于 2009-02-25T16:40:16.787 に答える
1

編集:元の質問に対するコメントと編集に応じて:

サンプルのExcelファイルをレイアウトし、コードを機能させることができました。これが私のデータのレイアウトです:

   |    A    |  B  |  C  |  D  |
--------------------------------
 1 | Milk    |  3  |  1  |  4  |
 2 | Cookies |  1  |  5  |  9  |
 3 | Honey   |  2  |  6  |  5  |

そして、棒グラフは次のようになります。

                          ._.
                          |C|
               ._.._.     |C|._.
 ._.   ._.     |C||H|  ._.|C||H|
 |M|._.|H|  ._.|C||H|  |M||C||H|
 |M||C||H|  |M||C||H|  |M||C||H|
---------------------------------
     1          2          3

上の図で「M」とラベル付けされたすべてのバーが「Milk」シリーズに属している場合、「C」とラベル付けされたすべてのバーは「Cookies」シリーズに属し、「H」とラベル付けされたすべてのバーは「ハニー」シリーズ。

このチャートでコードを実行すると、バーの色が期待どおりに変更されます。私のセットアップとあなたのセットアップの違いを教えてください。私はそれを理解しようとしますが、私はより多くの情報が必要です:)

于 2009-02-25T16:40:29.393 に答える
0

Excel 2007および2003を使用して、同じ問題が発生しました。

しかし、2003年にワークブックを開いて修正し、右クリック(など)してデータ系列をフォーマットし、塗りつぶしの色を自動に設定しました。次に、マクロを実行すると、colorindex 設定部分が保持されます。

于 2009-10-14T18:17:41.323 に答える
0

おそらく Excel のバグです。使用している Excel のバージョンを教えてください。サービス パック/パッチを適用して、問題の再現を再試行してください。

于 2009-08-12T04:24:13.813 に答える