Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5334 / 13646 ツリー ←次へ | 前へ→

【51437】棒グラフのカラー設定 悩める老人 07/9/18(火) 13:12 質問[未読]
【51440】Re:棒グラフのカラー設定 Jaka 07/9/18(火) 15:52 発言[未読]
【51448】Re:棒グラフのカラー設定 悩める老人 07/9/18(火) 17:21 質問[未読]
【51456】Re:棒グラフのカラー設定 Jaka 07/9/19(水) 16:03 発言[未読]
【51457】Re:棒グラフのカラー設定 悩める老人 07/9/19(水) 19:58 お礼[未読]

【51437】棒グラフのカラー設定
質問  悩める老人 E-MAIL  - 07/9/18(火) 13:12 -

引用なし
パスワード
   早速ですが下記のことについてご教示ください。
1.埋め込みグラフで積み上げ縦棒グラフをつくりました。
2.中央に表示したデータラベルを見やすくするためカラーを変更したいのですが
 どのようなコードを書いたらいいのかご教示ください。

【51440】Re:棒グラフのカラー設定
発言  Jaka  - 07/9/18(火) 15:52 -

引用なし
パスワード
   マクロで、グラフについての返答がなかなか付きにくいのはどこでも同じですが、
質問者側にもわかりにくい質問をしているものが多いので、勉強もかねて考えてみようという気にもならないことも多いです。

まず、簡単に○○グラフをつくりましたといっても、どういった形状のデータで作られているのか解らないので、自分でーデータ形状を考えてグラフを作ってみる気がおきません。

単純な質問だったら、例えばA1:H25ぐらいの範囲に全部1を書き込んでグラフを作ったりしますが...。
そのグラフを使ってマクロ記録したものを使って手直しするだけです。
それでも手に負えないものは調べたりしますが、まずはグラフを再現できないと調べる気にもなりません。
自分でデータ形式を考えるのは面倒です。
グラフの達人ならすぐ作成したりできるのでしょうが、マクロの他は良く解りませんって方も多いです。(私もそうです。)
グラフやピボットで質問をする人は、なんでデータを提示しないのか前々から不思議の思ってます。
回答者が自分でデータやレイアウトを考えて作り、それを元に回答してくださいって言っているようにしか思えないです。
上記を踏まえれば回答率も多少上がるような気もします。

>2.中央に表示したデータラベルを見やすくするためカラーを変更したいのですが
中央に表示したっていうのが良く解りませんが、データ範囲が固定ならこの程度はマクロ記録でできると思います。
たぶん汎用できるようにしたいということでしょうが......。

【51448】Re:棒グラフのカラー設定
質問  悩める老人 E-MAIL  - 07/9/18(火) 17:21 -

引用なし
パスワード
   ▼Jaka さん:

大変失礼しました。

表の様式は
シート名;月別 
項目:A1(日付:1から31まで),B1(計)C1(AA) D1(CC)
この様式でC・D列に任意の数字を入力し下記のコードを書きました。

Public Sub 月別グラフ作成()

 月別.Activate
ActiveSheet.ChartObjects.Delete 
  ' 評価値グラフ
   作成グラフ 10, 370, 480, 220, 月別.Range("C1:D32")
End Sub

Public Sub 作成グラフ(左, 上, 幅, 高, myRange As Range)

 '埋め込みグラフ作成
  With ActiveSheet.ChartObjects.Add(左, 上, 幅, 高).Chart
  '積上げ縦棒グラフ
   .ChartType = xlColumnStacked
   .SetSourceData myRange, PlotBy:=xlColumns
   'グラフタイトルはグラフ外に表示

  '凡例
   .HasLegend = True
   .Legend.Position = xlLegendPositionTop
  '横軸ラベル
   .Axes(xlCategory, xlPrimary).HasTitle = True
   .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "日付"
   '横軸日付をフォントサイズを9にする
   .Axes(xlCategory).TickLabels.Font.Size = 9
   
  '縦軸ラベル:グラフ小さくなるので非表示

  '棒グラフに数値を表示する

     With .SeriesCollection(1)
      .HasDataLabels = True
      .DataLabels.Font.Size = 8
      .DataLabels.Position = xlLabelPositionCenter '

’この棒グラフ部分のカラーを変更したいのです

     'データ領域がカラーにならないので不採用
'      .DataLabels.Interior.ColorIndex = 34
'      .DataLabels.Interior.Pattern = xlSolid
      End With
    
      With .SeriesCollection(2)
       .HasDataLabels = True
       .DataLabels.Font.Size = 8
       .DataLabels.Position = xlLabelPositionCenter '
      End With
     
 'グラフ領域カラーなし
      .PlotArea.Border.Weight = xlThin
      .PlotArea.Interior.ColorIndex = xlNone
   End With
End Sub

上記コードで表示されるC列・D列数値の棒グラフのカラーを変更したいのです。

【51456】Re:棒グラフのカラー設定
発言  Jaka  - 07/9/19(水) 16:03 -

引用なし
パスワード
   うまくいかないですね。
下のほうが基本になるような感じですね?
時間がかかるけど1個1個で考えてみました。

Public Sub 作成グラフ(左, 上, 幅, 高, myRange As Range)

 '埋め込みグラフ作成
  With ActiveSheet.ChartObjects.Add(左, 上, 幅, 高).Chart
  '積上げ縦棒グラフ
   .ChartType = xlColumnStacked
   .SetSourceData myRange, PlotBy:=xlColumns
   'グラフタイトルはグラフ外に表示

  '凡例
   .HasLegend = True
   .Legend.Position = xlLegendPositionTop
  '横軸ラベル
   .Axes(xlCategory, xlPrimary).HasTitle = True
   .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "日付"
   '横軸日付をフォントサイズを9にする
   .Axes(xlCategory).TickLabels.Font.Size = 9

  
  '縦軸ラベル:グラフ小さくなるので非表示

  '棒グラフに数値を表示する
'ActiveChart.SeriesCollection(2).DataLabels
     With .SeriesCollection(1)
      .HasDataLabels = True
      .DataLabels.Font.Size = 8
      .DataLabels.Position = xlLabelPositionCenter
      .DataLabels.Interior.ColorIndex = 34
      .DataLabels.Interior.Pattern = xlSolid
      End With

'      With .SeriesCollection(2)  '上
'       .HasDataLabels = True
'       .DataLabels.Font.Size = 8
'       .DataLabels.Position = xlLabelPositionCenter '
'       .DataLabels.Interior.ColorIndex = 6
'       .DataLabels.Interior.ColorIndex = xlNone
'      End With

      For i = 1 To 31
        With .SeriesCollection(2)
         .HasDataLabels = True
         .Points(i).DataLabel.Font.Size = 8
         .Points(i).DataLabel.Interior.ColorIndex = 7
        End With
      Next
   
 'グラフ領域カラーなし
      .PlotArea.Border.Weight = xlThin
      .PlotArea.Interior.ColorIndex = xlNone
   End With
End Sub

>シート名;月別
>項目:A1(日付:1から31まで),B1(計)C1(AA) D1(CC)
これだとなんのこっちゃ状態です。
項目名も含めて、レイアウトでちゃんと書いてください。
データ部が1行〜3行とか手抜きせずに。
こういうことを何度も書くのは面倒です。
(結構多いので、何度もといった表現になってしまいます。)

【51457】Re:棒グラフのカラー設定
お礼  悩める老人 E-MAIL  - 07/9/19(水) 19:58 -

引用なし
パスワード
   ▼Jaka さん:

重ね重ねの失礼にも拘わらずご回答いただき大変ありがとうございました。
次回からの質問には今回のご指導を生かし失礼のないようにしたいと思っていますので今後ともよろしくお願います。取り急ぎお礼まで  悩める老人

5334 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free