[[20070128111445]] 『データ範囲を変えてヒストグラムを描く』(イブのパパ) ページの最後に飛ぶ

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

 

『データ範囲を変えてヒストグラムを描く』(イブのパパ)

VBA初心者です。品質管理の仕事をしています。以前、データ範囲を10個づつ換えて折れ線グラフを描く下記のコードを教えて頂きました。

上手く動くのですが、このコードに追加して折れ線グラフの横に同じデータ10個(実際には100個)を使ってヒストグラムを描きたいのです。

Sheet2にデータを置き、Sheet3のコマンドボタンでSheet3に折れ線グラフとヒストグラムを描きたいのです。いろいろ試してみましたがデータ範囲を換えてというところが上手くいきません。どなたか教えていてだけないでしょうか。

[エクセルのバージョン]Excel2002、[OSのバージョン]WindowsXP

sheet2

 A       B       C       D      E     F

年月日   試験NO.  ロット   製品特性a 製品特性b 製品特性c

2007/1/1  701001  070101   10.8   154.5   54.6

2007/1/2  701002  070102   10.2   149.7   55.2

2007/1/3  701003  070103   10.9   151.3   55.0

Sub データ範囲を換えてグラフを描く()

Dim ラベル範囲 As String

Dim データ範囲 As String

Dim グラフ範囲 As Range

Dim MyChart As ChartObject

Dim MyMax As Long

Static i As Long

With Sheets("Sheet2")

    MyMax = .Range("C4", .Range("C65536").End(xlUp)).Rows.Count
    ラベル範囲 = "C3,F3," & .Range("C4").Offset(i).Resize(10).Address(0, 0)
    データ範囲 = ラベル範囲 & "," & .Range("F4").Offset(i).Resize(10).Address(0, 0)
    Set グラフ範囲 = .Range("a20:k45")
    On Error Resume Next
        Set MyChart = .ChartObjects(1)
    On Error GoTo 0
    If MyChart Is Nothing Then
        Set MyChart = .ChartObjects.Add( _
        グラフ範囲.Left, グラフ範囲.Top, グラフ範囲.Width, グラフ範囲.Height)
    End If
End With
With MyChart.Chart
    .ChartType = xlLineMarkers
    .SetSourceData Source:=Sheets("Sheet2").Range(データ範囲), PlotBy:=xlColumns
    .PlotArea.Width = 500
    .PlotArea.Height = 400
    .Axes(xlCategory).TickLabels.Font.Size = 20

End With

i = i + 10

If MyMax <= i Then i = 0

Set MyChart = Nothing

Set グラフ範囲 = Nothing

End Sub


 グラフってやらないのであまり覚えていませんが、
 いちいちグラフを選択して、
 ActiveChart.XXXXXX
 って書かないと、駄目な物もあったと思います。
 その辺を試されてはどうでしょう。
 BJ


コメントありがとうございます。
初心者なのでもう少し詳しく教えてもらえないでしょうか。
宜しくお願いします。

コメント返信:

[ 一覧(最新更新順) ]


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