[[20220427095257]] 『自動表示グラフへデーター追加』(むよ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『自動表示グラフへデーター追加』(むよ)

過去ログで『選択した物だけグラフ表示』(のBI太)を参考にして
自動で表示が切り替わるグラフを作成したのですが
このグラフは1項目のデーターだけ表示されます。
同時に2項目のデーターを表示するにはどの様にすればよいかお教えください。
追加したいデーターは表の最下段に有る、毎月の生産台数で
これを項目を選択して表示したグラフ全てに表示させたいです。
よろしくお願いします。

< 使用 Excel:Excel2016、使用 OS:Windows10 >


>自動で表示が切り替わるグラフを作成した

具体的に、どのように作成したのか示してください。

(わからん) 2022/04/27(水) 10:36


(わからん)さん
表は以下の通りです。

        A   B    C    D    E
             1月   2月   3月   4月
1   あ  10   20   30   20
2   い   5   10   20   10
3   う  55   45   30   20
4   え  20   80   60   90
5   お  30   55   25   30
↓
30  台数   150  250   250   300

作成したグラフは「あ」を選ぶと「あ」の各月の個数が棒グラフに表示され
表に戻って「う」を選ぶと「う」の各月の個数が棒グラフに表示されます。
どれを選んでも30行に有る「台数」を折れ線グラフで表示させたいです。
よろしくお願いします。

(むよ) 2022/04/27(水) 11:11


>「あ」を選ぶと「あ」の各月の個数が棒グラフに表示され

怪奇現象ですか?
仕掛けがあるなら、それを示してください。

(わからん) 2022/04/27(水) 11:14


[[20130107144416]] 『選択した物だけグラフ表示』(のBI太)

 質問番号を入れるとリンクできる。

(ねむねむ) 2022/04/27(水) 11:17


「30行に有る「台数」を折れ線グラフ」で追加するなら、こんな感じでしょうか。

 Sub Test()
    With ChartObjects("グラフ 1").Chart.SeriesCollection.NewSeries
         .Name = Range("A30").Value
         .XValues = Range("B1:E1")
         .Values = Range("B30:E30")
         .ChartType = xlLine
    End With
 End Sub

(わからん) 2022/04/27(水) 17:27


(わからん)さん、ありがとうございます。
提示して頂いたコードをどの様に入れれば良いのかが分かりません。

現在使用しているVBAが以下です。

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim myChart As Chart
    Dim r As Range
    Dim cnt As Long
    Dim i As Long

    If Target.Row < 0 Then Exit Sub
    If Target.Row > 50 Then Exit Sub
    If Target.Column > 1 Then Exit Sub

    Set myChart = Charts("Graph1")
    For Each r In Target
        If r.Column = 1 Then
            With myChart.SeriesCollection.NewSeries
                 .Name = r.Value
                 .XValues = Range("A1:E1")
                 .Values = r.EntireRow.Range("A1:E1")
            End With
            cnt = cnt + 1
            For i = 1 To myChart.SeriesCollection.Count - cnt
                myChart.SeriesCollection.Item(1).Delete
            Next i
        End If
    Next r
    Sheets("Graph1").Select
 End Sub

よろしくお願いします。
(むよ) 2022/05/09(月) 15:38


こんな感じかと思います。
(グラフシートにしているようなので、修正しました)

 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim myChart As Chart
    Dim r As Range
    Dim cnt As Long
    Dim i As Long
    If Target.Row < 0 Then Exit Sub
    If Target.Row > 50 Then Exit Sub
    If Target.Column > 1 Then Exit Sub
    Set myChart = Charts("Graph1")
    For Each r In Target
        If r.Column = 1 Then
            With myChart.SeriesCollection.NewSeries
                 .Name = r.Value
                 .XValues = Range("A1:E1")
                 .Values = r.EntireRow.Range("A1:E1")
            End With
            cnt = cnt + 1
            For i = 1 To myChart.SeriesCollection.Count - cnt
                myChart.SeriesCollection.Item(1).Delete
            Next i
        End If
    Next r

    '-- 追加部分
    With Charts("Graph1").SeriesCollection.NewSeries
         .Name = Range("A30").Value
         .XValues = Range("B1:E1")
         .Values = Range("B30:E30")
         .ChartType = xlLine
    End With
    '-- 追加部分 ここまで

    Sheets("Graph1").Select
 End Sub

(わからん) 2022/05/09(月) 16:33


(わからん)さん、ありがとうございます。
折れ線グラフも表示されました。
ですが左端の値軸が「台数」に対応する為、それより数値が低い「あ〜お」各項目の数字のグラフが
上下に圧縮されて各月の差が分かりづらくなってしまいます。
グラフシートで『グラフの種類の変更』で、折れ線を第2軸に指定すると
その時は右側に「台数」の値軸が出来て分かりやすくなりますが
表に戻って別の項目を選んで、新たに自動でグラフを表示させると
最初の状態に戻ってしまいます。
VBAの中に第2軸を指定する命令が必要な様ですが、どうすれば良いのか全く分かりません。
左の値軸は各項目の数値、右の値軸は「台数」の数値に対応させるにはどうすれば良いでしょうか?
よろしくお願いします。

(むよ) 2022/05/11(水) 16:30


>VBAの中に第2軸を指定する命令が必要な様ですが

「 .AxisGroup = 2 」です。

(わからん) 2022/05/11(水) 16:41


(わからん)さん
希望していたグラフを作る事が出来ました。
ありがとうございました。
(むよ) 2022/05/12(木) 14:12

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.