[[20050124123114]] 『VBAによるグラフ作成(第2軸利用)』(Ayu) ページの最後に飛ぶ

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

 

『VBAによるグラフ作成(第2軸利用)』(Ayu)

 Excelのバージョンは2000です。
 そこで、ある表から自動的に折れ線グラフを作成するマクロを組み込み中です。
 このグラフは第2軸を利用したいのですが、どうしても上手くいきません。

 ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="2 軸上の折れ線"

 (データのセット部分は中略)

 With ActiveChart
        .HasTitle = True
        .ChartTitle.Characters.Text = "週次品質指標"
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = True
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "みつど"
        .Axes(xlCategory, xlSecondary).HasTitle = False
        .Axes(xlValue, xlSecondary).HasTitle = True
        .Axes(xlValue, xlSecondary).AxisTitle.Characters.Text = "してきりつ"
 End With

 xlsecondaryを利用しようとすると、実行時エラー1004
 「Axesメソッドは失敗しました:Chartオブジェクト」
 となります。どうしたら、上手く第2軸を利用したグラフが作れるのでしょうか?

 教えてくださいお願いいたします。


 マクロの記録そのままだけど、どうかな?
参考になればいいのですが、、、
(SoulMan)
Sub Macro2()
'
' Macro2 Macro
' マクロ記録日 : 2005/1/24  ユーザー名 : SoulMan
'

'

    Charts.Add
    ActiveChart.ChartType = xlLineMarkers
    ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:E4"), PlotBy:= _
        xlRows
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
    With ActiveChart
        .HasTitle = False
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
    End With
    ActiveChart.SeriesCollection(3).Select
    ActiveChart.SeriesCollection(3).AxisGroup = 2
    ActiveWindow.Visible = False
    Windows("Book1").Activate
    Range("I26").Select
End Sub
すみません。折れ線グラフでしたね。訂正しました。


 衝突しました。
 Ayuさんのコードで問題なく動きますけどね・・・。
 グラフ元のデータがどのようになっているのか判りませんが、そちらの方が問題のような気がします。

 (川野鮎太郎) 同じあゆだ(*´ェ`*)ポッ!


 みなさんありがとうございます。
 折れ線グラフで作成して(ActiveChart.ChartType = xlLineMarkers)
 その後に、
 ActiveChart.SeriesCollection(2).AxisGroup = 2
 で軸を増やすことができました。

 最初のグラフタイプを設定するときに
 ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="2 軸上の折れ線"
 を利用しないことで回避したのですが・・・

 ここで問題が・・・2軸の折れ線グラフに棒グラフも加えたい!となると
 ActiveChart.ApplyCustomType ChartType:=xlBuiltIn, TypeName:="2 軸上の折れ線と縦棒"
 を使う以外に、棒グラフを追加するコトはできないのでしょうか?

 この学校は、いつもお返事が早くてすごく助かります。
 よろしくお願いいたします。

 (Ayu♪)


 上でも書きましたが元データが不明なので的外れかも・・・。
ActiveChart.SeriesCollection(3).ChartType = xlColumnClustered

 (川野鮎太郎)

 衝突しました。同じですが、、せっかくなので
最初に棒グラフを作っておいて後から折れ線グラフに変えたらいいんじゃないんですか?
これまた記録のままですが、、、、
Option Explicit
Sub Macro2()
'
' Macro2 Macro
' マクロ記録日 : 2005/1/24  ユーザー名 : SoulMan
'

'

    Charts.Add
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A1:E4"), PlotBy:= _
        xlRows
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Sheet1"
    With ActiveChart
        .HasTitle = False
        .Axes(xlCategory, xlPrimary).HasTitle = False
        .Axes(xlValue, xlPrimary).HasTitle = False
    End With
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.SeriesCollection(1).ChartType = xlLineMarkers
    ActiveChart.SeriesCollection(1).Select
    ActiveChart.SeriesCollection(1).AxisGroup = 2
    ActiveChart.SeriesCollection(3).Select
    ActiveChart.SeriesCollection(3).ChartType = xlLineMarkers
    ActiveChart.SeriesCollection(3).Select
    ActiveChart.SeriesCollection(3).AxisGroup = 2
    ActiveWindow.Visible = False
    Windows("Book1").Activate
    Range("K13").Select
End Sub
(SoulMan)


 本当に早いお返事ありがとうございます。
 ActiveChart.SeriesCollection(1).ChartType = xlLineMarkers
 で形を変えられるんですね。
 知りませんでした…。いつもマクロの記録を参考にしてコーディングしてますが
 今回、グラフは初めて作るのでサッパリわからない状態でした。

 普通にエクセルの機能でグラフを作るときも、データ系列の表示の仕方を
 折れ線→棒 という風に変える方法すら知らず、記録も出来なかったです。。。

 本当にありがとうございました。これでなんとか完成が見えましたっ!
 感謝感謝ですm(_ _"m)ペコリ

 ちなみに、元データはそんなに妙なものでもないんですけどね。
 範囲設定とかは、変数でセル位置が変わるので書きにくくて…
 確かに、数値の差が大きく開いた値があるので上手くいかなかったのかも
 しれません。

 ありがとうございました。
 私もいつか!ここで、アドバイス・返答ができるようなエクセルマスターになるぞ!

 (Ayu♪)


コメント返信:

[ 一覧(最新更新順) ]


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