2

積み上げ棒グラフを使用して、Excel 2010 でロードマップ/タイムラインを作成しようとしています。チャートで私の意図を説明する必要がある画像へのリンクを以下に提供しました。チャートにさまざまなイベントを表示したいのですが、それらはその期間に関連して描画する必要があります。イベントが長いほど、それぞれのバーが長くなります。

好みのグラフを作成するマクロを作成することができました。ただし、別の機能を追加したいと考えています。以下の図からわかるように、元のテーブルには「タイプ」という列があります。完了、キャンセル、または計画中など、イベントのステータスを表します。私の目的は、問題の特定のイベントの Type 行の値に応じて、バーを赤 (キャンセルされた場合)、緑 (完了した場合)、または青 (計画されている場合) に色付けすることで、このデータをチャートに表すことです。

以下は、「Create a New Event View」ボタンが使用するマクロの背後にあるコードです。ユーザーがボタンをクリックするだけで済むように、できればこの同じマクロで色付けを実装する方法を知りたいです。

Sub CreateEventTable()

Dim timespan_start As Date
Dim timespan_end As Date
timespan_start = Application.InputBox("Type start date:")
timespan_end = Application.InputBox("Type end date:")

ActiveSheet.Shapes.AddChart(xlBarStacked, Range("E2").Left, Range("E2").Top).Select

With ActiveChart
  .SetSourceData Source:=Range("$A$1:$B$12, $D$1:$D$12"), PlotBy:=xlColumns
  .SeriesCollection(1).Values = Range("B2:B12")
  .SeriesCollection(1).XValues = Range("A2:A12")
  .SetElement msoElementLegendNone
  .ChartGroups(1).GapWidth = 31
  .SeriesCollection(2).ApplyDataLabels
  .SeriesCollection(2).DataLabels.ShowCategoryName = True
  .SeriesCollection(2).DataLabels.ShowValue = False
  .SeriesCollection(1).Format.Fill.Visible = msoFalse
  .Axes(xlValue).MinimumScale = timespan_start
  .Axes(xlValue).MaximumScale = timespan_end

End With
End Sub

全体的な構造をうまく説明している画像へのリンクは次のとおりです。

http://i.imgur.com/XzPoMiY.jpg

かけがえのない助けに感謝します!必要に応じて詳細をお知らせいたします。

4

1 に答える 1

0

ここでの最善の解決策はVBAではありません。チャート用に複数の系列を作成し、それらを重ね合わせ、条件を満たしているかどうかを計算する数式を使用する必要があります。自動的に変更され、保守が非常に簡単です。

Skip Intro が言ったように、Jon Peltier はチャート マスターです。

このリンクにより、正しい方向に進むことができます。

http://peltiertech.com/WordPress/conditional-formatting-of-excel-charts/

于 2013-10-30T22:33:54.723 に答える