Excel (VBA)

Excel VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Home : Excel 2013)
組み合わせグラフについて
投稿日時: 20/08/04 00:14:01
投稿者: メロス

お世話になっております。
 
商品Aの毎月の実績をグラフにするマクロを作成しようとしています。
下記資料の「受注見込(月)」列を折れ線グラフにし、「4月実績〜6月実績」を棒グラフにしたいのですが、
「受注見込(月)」を折れ線に変更することができず、困っております。
解決できるコードがあれば、ご教示ください。
 
A列    B列    C列    D列    E列    F列    G列    H列    I列    J列
2    今後の受注予測について                                
3    商品名称    品番    品名    2019年度出荷台数    受注見込(月)    4月実績    5月実績    6月実績    7月実績
4    商品A    A001    部品A001    12    5    0    6    15    9
5        A002    部品A002    6    5    3    3    22    9
6        A003    部品A003    23    5    27    11    39    33
7        A004    部品A004    32    5    24    9    49    30
8        A005    部品A005    40    5    24    9    46    33
9        A006    部品A006    62    5    24    6    43    33
10    商品B    B001    部品B001    8    5    27    6    33    21
11        B002    部品B002    37    5    18    6    37    21
12    商品C    C001    部品C001    40    5    3    12    9    0
13        C002    部品C002    50    5    3    9    3    3
14        C003    部品C003    63    5    0    4    4    0
15        C004    部品C004    52    5    0    6    6    0
16        C005    部品C005    47    5    0    10    8    0
17        C006    部品C006    60    5    3    6    8    1
18    商品D    D001    部品D001    7    5    2    0    2    2
19        D002    部品D002    7    5    2    0    2    2
20        D003    部品D003    7    5    2    0    2    2
21        D004    部品D004    6    5    2    0    2    2
22        D005    部品D005    7    5    2    1    3    2
23        D006    部品D006    9    5    0    0    4    3
24    商品E    E001    部品E001    0    5    0    0    0    0
25    商品F    F001    部品F001    0    5    0    0    0    0
26    商品G    G001    部品G001    496    400    144    240    121    0
27        G002    部品G002    113    400    216    120    144    0
28        G003    部品G003    1,765    550    362    245    241    2
29        G004    部品G004    1,547    550    415    457    2    1
30        G005    部品G005    1,575    550    410    457    1    5
31        G006    部品G006    1,407    550    412    457    51    30
32    商品H    H001    部品H001    1,027    150    238    96    216    0
33        H002    部品H002    744    150    265    76    217    2
34    商品I    I001    部品I001    947    40    168    24    24    96
35        I002    部品I002    859    40    192    24    24    144
36        I003    部品I003    904    40    240    72    0    0
37        I004    部品I004    986    40    120    72    1    0
38        I005    部品I005    930    40    72    49    1    25
39        I006    部品I006    940    40    192    24    0    0
40    商品J    J001    部品J001    0    87    158    144    108    36
41        J002    部品J002    0    42    85    72    60    12
42        J003    部品J003    0    125    231    288    156    48
 

Sub 商品Aグラフ作成()
   Dim LastColumn As Long
   LastColumn = Cells(3, Columns.Count).End(xlToLeft).Column
   Debug.Print LastColumn
   
   Dim ProductA_Target As Range
   Set ProductA_Target = Union(Range(Cells(3, 4), Cells(9, 4)), Range(Cells(3, 6), Cells(9, LastColumn)))
    
    Dim ProductA_Chart As Object
    Set ProductA_Chart = ActiveSheet.ChartObjects(1)
    Debug.Print ProductA_Chart.Name
    
    With ActiveSheet.Shapes.AddChart.Chart
        .ChartType = xlColumnClustered
        .SetSourceData Source:=ProductA_Target
        
    End With
    
     ActiveSheet.ChartObjects(1).Activate
        ActiveChart.FullSeriesCollection(1).ChartType = xlLine
        ActiveChart.FullSeriesCollection(2).ChartType = xlColumnClustered
        ActiveChart.FullSeriesCollection(3).ChartType = xlColumnClustered
        ActiveChart.FullSeriesCollection(4).ChartType = xlColumnClustered
        ActiveChart.FullSeriesCollection(5).ChartType = xlColumnClustered
        

End Sub

回答
投稿日時: 20/08/04 09:59:37
投稿者: sk

引用:
Set ProductA_Chart = ActiveSheet.ChartObjects(1)

Set ProductA_Chart = ActiveSheet.Shapes.AddChart.Chart
 
引用:
With ActiveSheet.Shapes.AddChart.Chart
    .ChartType = xlColumnClustered
    .SetSourceData Source:=ProductA_Target
     
End With
 
ActiveSheet.ChartObjects(1).Activate
ActiveChart.FullSeriesCollection(1).ChartType = xlLine
ActiveChart.FullSeriesCollection(2).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(3).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(4).ChartType = xlColumnClustered
ActiveChart.FullSeriesCollection(5).ChartType = xlColumnClustered

With ProductA_Chart
    .ChartType = xlColumnClustered
    .SetSourceData Source:=ProductA_Target
    .SeriesCollection(1).ChartType = xlLine
End With
 
------------------------------------------------------------------
 
以上のように修正してみて下さい。

回答
投稿日時: 20/08/04 10:00:18
投稿者: Suzu

アクティブなグラフの 要素1 の 形状を 線に変えています。
 

引用:
ActiveChart.FullSeriesCollection(1).ChartType = xlLine

 
 
そのプロシージャを実行中のシートには、複数のグラフが存在しませんか?
 
どのグラフに対してなのかを明確にするために、
直前の With の 中に入れ込む形にしてしまってはどうですか。

回答
投稿日時: 20/08/04 10:11:11
投稿者: QooApp

引用:
商品Aの毎月の実績をグラフにするマクロを作成しようとしています。
下記資料の「受注見込(月)」列を折れ線グラフにし、「4月実績〜6月実績」を棒グラフにしたいのですが、
「受注見込(月)」を折れ線に変更することができず、困っております。

 
棒グラフ化はできたんでしょうか。
 
受注見込みを折れ線グラフにとありますが、縦横軸の値に何を使ってるんでしょうか。
 
 
引用:
解決できるコードがあれば、ご教示ください。

利用規約上、作成依頼は承れないため、
マクロの記録でVBA側に操作を記録させ、そのコード結果から必要な箇所を抜いてみては。
 
開発タブ > 左上寄りにあるマクロの記録ボタンを押す > 取得したい制御方法
 > マクロの記録の停止

投稿日時: 20/08/04 21:44:40
投稿者: メロス

投稿者: sk様
こちらのコードに変更したところ、無事作成することができました。
ご回答誠にありがとうございました。
 
投稿者: Suzu様
直前の With の 中に入れ込むようにしたところ、グラフがうまく作れました。
ご回答誠にありがとうございました。
 
投稿者:QooApp様
棒グラフは作成できましたが、その後一つの系列を折れ線グラフにすることに躓きました。
縦軸は縦軸は実績数量、横軸は部品名でした。