2011-07-13 16 views
0

各データポイントのエラーバーのサイズが異なるVBAとExcelを使用して折れ線グラフを自動的に生成しようとしています。 (私は行く-へのPython/matplotlibののを使用するのが大好きだが、ビジネス上の理由で結ばれています)可変エラーバーを使用した折れ線グラフの作成

私はそれを行う方法を参照するには、マクロの記録を試みたが、生成されたコードは、このでした:

Range("C2:C8").Select 
ActiveSheet.Shapes.AddChart.Select 
ActiveChart.SetSourceData Source:=Range("'Sheet1'!$C$2:$C$8") 
ActiveChart.ChartType = xlLineMarkers 
ActiveChart.SeriesCollection(1).XValues = "='Sheet1'!$B$2:$B$8" 
ActiveChart.PlotArea.Select 
ActiveChart.SeriesCollection(1).HasErrorBars = True 
ActiveSheet.ChartObjects("Chart 2").Activate 
ActiveChart.SeriesCollection(1).ErrorBars.Select 
ActiveChart.SeriesCollection(1).ErrorBar Direction:=xlY, Include:=xlBoth, _ 
    Type:=xlCustom, Amount:=0 
ActiveSheet.ChartObjects("Chart 2").Activate 
ActiveChart.SeriesCollection(1).ErrorBars.Select 

しかしそれほど有用ではありません - 金額の値はゼロです!

Sub ErrorLine(sheetName As String, row1 As Integer, _ 
row2 As Integer, xcol As Integer, ycol As Integer, errCol As Integer) 

Dim strErrorY As String 
strErrorY = "=" & sheetName & "!" & _ 
    Range(Cells(row1, errCol), Cells(row2, errCol)).Address() 

Sheets(sheetName).Activate 
Sheets(sheetName).Shapes.AddChart.Select 
ActiveChart.SetSourceData Source:=Range(Cells(row1, ycol), Cells(row2, ycol)) 
ActiveChart.ChartType = xlLineMarkers 

With ActiveChart.SeriesCollection(1) 
    .XValues = Range(Cells(row1, xcol), Cells(row2, xcol)) 
    .HasErrorBars = True 
    .ErrorBars.Select 
    .ErrorBar Direction:=xlY, Include:=xlBoth, _ 
     Type:=xlCustom, Amount:=strErrorY, MinusValues:= _ 
     strErrorY 
End With 
End Sub 

しかし、これは単なるなしエラーバーで、私に折れ線グラフを与える: だから、私はそうのように、動的エラーバーの範囲を作り、これを変更し、サブルーチンでそれを入れてみました。誰か助けてくれますか? ヘルプをいただければ幸いです。

答えて

1

.ErrorBarは、.Addressメソッドが返すA1形式のアドレスが似ていないようです。 RCスタイルのアドレスが好きです。

私のアドバイスは:文字列連結ビジネスを忘れてセルのアドレスを作ることです。それは厄介で、それは痛みです!

範囲自体を指定してください。

Dim rngAmount As Range 
Set rngAmount = _ 
    Worksheets(sheetName).Range(Cells(row1, errCol), Cells(row2, errCol)) 

、その後

Amount:=rngAmount, MinusValues:=rngAmount 
+0

素晴らしいです。ご協力ありがとうございました。 – samb8s

関連する問題