2012-02-03 20 views
1

私は、私たちが作った部品をテストして得たデータをフォーマットしてグラフ化するマクロを作っています。値はある範囲内でなければならないので、許容範囲がどこにあるかを示す線をグラフに追加したいと思います。Excelチャートでマクロを使用して水平線を作成

たとえば、1つのパラメータは特定の信号の電圧値です。仕様に入るには、.271と.451の間でなければならないので、そのグラフの値に線を追加したいと思います。

他のチャートは異なるものを測定していて、異なる値を持っていますが、基本的な原則は同じです。

1信号あたりのデータポイントの数は同じではありませんが、通常はかなり大きく、それぞれ数千程度です。

私は描画ツールやチャートに新しいデータシリーズを追加するなど、インターネット上でいくつかのオプションを見つけましたが、Excelマクロのこれらの面に精通していません。実際、データシリーズのアイデアを最初に見つけたページは見つけられないと思います。

+0

私は行ごとに別々のデータ系列を使用します。あなただけの行を作成するために、2つの点を必要とします。 –

答えて

1

各行に新しいシリーズが最適です。 (各カットのための1行を追加すること)

'add a line series with line but no markers 
    Sub AddLineSeries(cht As ChartObject, sName As String, xvals, _ 
         yvals, SeriesColor As Long) 
     Dim s As Series 
     Set s = cht.Chart.SeriesCollection.NewSeries 
     With s 
      .Name = sName 
      .Values = yvals 
      .XValues = xvals 
      .MarkerBackgroundColor = xlNone 
      .MarkerForegroundColor = SeriesColor 
      .MarkerStyle = xlMarkerStyleNone 
      With .Border 
       .Weight = xlThin 
       .Color = SeriesColor 
      End With 
     End With 
    End Sub 

使用法:

'cht is the chart object 
'minX/maxX are x-axis values you want to plot the line for 
'qcMin/Max are the y-axis values for your lower/upper cut-offs 
'Array() just creates an array of values to pass to the chart for plotting, since 
' we're not using values from a worksheet for this series 
AddLineSeries cht, "QC Min", Array(minX, maxX), Array(qcMin, qcMin), _ 
       RGB(255, 0, 0) 
AddLineSeries cht, "QC Max", Array(maxX, maxX), Array(qcMax, qcMax), _ 
       RGB(255, 0, 0) 
+0

chtは私が行を追加するために修正しているグラフです – Mark

+0

Woops、あまりにも早く投稿しました。少しでもうまくいくでしょう。 – Mark

+0

配列を除いてほとんどの部分が得られます。それらはXとYの値を表していますが、それらを作成する必要があるのか​​、それとも十分な線ですか? maxIndexは、私が持っているデータポイントの量ですが、qcMinとqcMaxは何ですか?私の上限と下限の公差?そのArray()関数に関するドキュメントのリンクがありますか? – Mark

0

だけのデータポイントのカップルを作成し、新しいシリーズとして追加、あなたはXY散布図を使用していると仮定。たとえば、A1:B6に示すようにデータを入力し、その範囲全体を系列として追加します。あなたは2行を得るでしょう。もちろん、元のデータからXとYの値を計算する必要があります。

enter image description here

+0

単なる1つのチャートではありません。私が使用しているデータセットには、マクロによって自動的に作成される36のチャートがあります。さらに、私は、このテストを実行する他の人が、手作業で多くの書式設定を行うことなく、このテストを使用できるようにしたいと考えています。 – Mark

+0

@マークを使って、これをVBAでも実装することもできますし、ワークブックに既に設定しておくこともできます(隠しシートの計算を使用することもできます)。私が作ろうとしてきたことは、実際には複数の行に1つの系列しか必要ないということです。データの設定方法はすべてです。 –

関連する問題