※ ChatGPTを利用し、要約された質問です(原文:VBAによるリアルタイムグラフ作成)
VBAによるリアルタイムグラフ作成
このQ&Aのポイント
VBAを使用して、あらかじめ作成された散布図のグラフにデータを追加し、リアルタイムにプロットする方法を教えてください。
追加するデータはセルに入力され、自動的にグラフにプロットされます。また、データを消す際にはグラフのデータ系列も一緒に消えるようにしたいです。
A列は系列名、B列は横軸、C列は縦軸として使用されます。あらかじめ作成された散布図には閾値をプロットしており、追加されたデータは8から始まります。
あらかじめ作成されている散布図のグラフにデータを追加しプロットしていきたいと思い、決められたセルに入力されたデータをVBAでグラフにプロットするところまでは何とか作れました。
追加するデータをセルに入力すると自動的に散布図にプロットする方法についてご教示頂けないでしょうか。
◯データを入力するセル
' A列 B列 C列
'3行 p1 0.5 1.0
'4行 g1 0.8 0.7
'5行
'6行
・
・
・
A列は、系列名でデータラベルとして使用
B列は、横軸
C列は、縦軸
◯あらかじめ作っている散布図には、閾値を事前に7つのデータ系列をつかってプロットしていますので、追加されたデータのインデックスは8からになります。
◯追加するデータ数は未知数
◯可能でしたら、セルに入力されたデータを消すとき、グラフのデータ系列も一緒に消える
よろしくお願いします。
Sub グラフ描画()
' A列 B列 C列
'3行 p1 0.5 1.0
'4行 g1 0.8 0.7
'5行
'6行
Dim chartObj As ChartObject
Set chartObj = ActiveSheet.ChartObjects(1)
With chartObj.Chart
' データセット
.SeriesCollection.NewSeries
.FullSeriesCollection(8).Name = "=Sheet1!$A$3"
.FullSeriesCollection(8).XValues = "=Sheet1!$B$3"
.FullSeriesCollection(8).Values = "=Sheet1!$C$3"
' マーク設定
.FullSeriesCollection(8).Format.Fill.Visible = msoTrue
.FullSeriesCollection(8).MarkerStyle = xlMarkerStyleCircle
.FullSeriesCollection(8).MarkerSize = 6
.FullSeriesCollection(8).Format.Fill.ForeColor.RGB = RGB(255, 0, 0)
.FullSeriesCollection(8).Format.Line.Visible = msoTrue
.FullSeriesCollection(8).Format.Line.ForeColor.RGB = RGB(255, 0, 0)
' データラベル設定
.FullSeriesCollection(8).ApplyDataLabels
.FullSeriesCollection(8).DataLabels.ShowSeriesName = True
.FullSeriesCollection(8).DataLabels.ShowValue = False
.FullSeriesCollection(8).HasLeaderLines = False
.FullSeriesCollection(8).DataLabels.Position = xlLabelPositionAbove
End With
End Sub
お礼
回答ありがとうございます お礼が遅くなり申し訳ございません。 年度末のためバタバタしており、プログラムを触れておらず結果のご報告ができず申し訳ございません。 データ数が少ないので、自動でもいいかなと思っていましたが、アドバイスを参考にボタンも検討したいと思います。 参考リンク先もありがとうございます