Excel VBA質問箱 IV

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

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


3313 / 13645 ツリー ←次へ | 前へ→

【62940】ピボットグラフのマーカーについて ベティ 09/9/24(木) 17:07 質問[未読]
【62957】Re:ピボットグラフのマーカーについて n 09/9/25(金) 20:41 発言[未読]
【62960】Re:ピボットグラフのマーカーについて ベティ 09/9/26(土) 14:26 お礼[未読]

【62940】ピボットグラフのマーカーについて
質問  ベティ  - 09/9/24(木) 17:07 -

引用なし
パスワード
   いつもお世話になります。

下記のようにピボットテーブルでグラフを作成しました。

ピボットテーブル
    性別 氏名        計   性別 氏名     計
     男 AA BB  CC      女 CC DD  
年齢10    100         100      200    200
  20       300   400  700            0
  30                0         500  500

ピボットグラフ
年収
1000
900
800
700
600
500      ●
400     ●
300     ●
200  ●
100  ●
  年齢10 20 30 

全てマーカーを●にするには、VBAで設定しました。

On Error Resume Next
  ActiveChart.SeriesCollection(1).Select
  With Selection.Border
    .Weight = xlThin
    .LineStyle = xlAutomatic
  End With
  With Selection
    .MarkerBackgroundColorIndex = 1
    .MarkerForegroundColorIndex = 1
    .MarkerStyle = xlCircle
    .Smooth = False
    .MarkerSize = 4
    .Shadow = False
  End With

これをもう少し分かりやすくする為に、
男性=黒 女性=赤
にしたくてもなかなか上手く出来ません。

系列 "男-AA"

の男の部分をどうしたら設定することができるのでしょうか?

宜しくお願い致します。

【62957】Re:ピボットグラフのマーカーについて
発言  n  - 09/9/25(金) 20:41 -

引用なし
パスワード
   安易に考えると、系列をLoopしてNmaeプロパティで判断させれば良いような感じです。

Dim sr As Series
Dim x As Long

With ActiveChart
  For Each sr In .SeriesCollection
    With sr
      If .Name Like "男 - *" Then
        x = vbBlack
      Else
        x = vbRed
      End If
      .MarkerBackgroundColor = x
      .MarkerForegroundColor = x
      .MarkerStyle = xlCircle
      .MarkerSize = 4
    End With
  Next
End With

以下余談ですが
>性別 氏名
という事は、ピボットテーブルの結果は集計ではなくて単独データですよね?
ピボットグラフを使わず元データからグラフを作成しても良さそうな気が。
年代別にまとめずとも、
年齢別年収を散布図グラフにして男性と女性で分ければ系列は2つで済みそう。

【62960】Re:ピボットグラフのマーカーについて
お礼  ベティ  - 09/9/26(土) 14:26 -

引用なし
パスワード
   nさん、お返事有難うございます!!

>Dim sr As Series
>Dim x As Long
>
>With ActiveChart
>  For Each sr In .SeriesCollection
>    With sr
>      If .Name Like "男 - *" Then
>        x = vbBlack
>      Else
>        x = vbRed
>      End If
>      .MarkerBackgroundColor = x
>      .MarkerForegroundColor = x
>      .MarkerStyle = xlCircle
>      .MarkerSize = 4
>    End With
>  Next
>End With

希望通りのものが出来ました!
いっぱい時間をかけて悩んでいたので大変助かりました。

>以下余談ですが
>>性別 氏名
>という事は、ピボットテーブルの結果は集計ではなくて単独データですよね?
>ピボットグラフを使わず元データからグラフを作成しても良さそうな気が。
>年代別にまとめずとも、
>年齢別年収を散布図グラフにして男性と女性で分ければ系列は2つで済みそう。

散布図グラフは今度またゆっくり考え直したいと思います。
大変勉強になりました。
有難うございました!!

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