現在、グラフのポイントを選択して、数値を抽出する方法を考えています。 1点だけを抽出する方法は、検索で見つけたのですが、私が考えているのは4点のプロットの数値を抽出したいと考えています。 マクロ初心者のため、皆さんの知恵をお貸し下さい。 以下が、ネットで検索して出てきたマクロになります。 Option Explicit Public xVal, yVal '任意の貼付けグラフのポイントを選択するとその情報が表示される例 Private myCharts() As cChart '任意の貼付けグラフのポイントを選択するとその情報が表示される例 '下記は、任意の貼付けグラフのポイントを選択するとその情報が表示される例です。 '標準モジュールの「セット」を実行すると機能が有効になり、「リセット」で解除です。 'クラスモジュール(cChart) と対で使用する Sub グラフ情報取得セット() Dim myChartOBJ As ChartObject Dim C As Integer Dim i As Integer C = ActiveSheet.ChartObjects.Count ReDim myCharts(1 To C) For i = 1 To C Set myCharts(i) = New cChart Set myCharts(i).Chart = ActiveSheet.ChartObjects(i).Chart Next End Sub Sub グラフ情報取得リセット() Dim i As Integer On Error Resume Next For i = LBound(myCharts) To UBound(myCharts) Set myCharts(i) = Nothing Next On Error GoTo 0 End Sub Sub myExec(Target As Chart, SeriesIndex As Long, PointIndex As Long) Dim myValues As Variant With Target 'MsgBox "グラフ名=" & .Name 'MsgBox "グラフオブジェクト名=" & .Parent.Name 'MsgBox "系列番号=" & SeriesIndex 'MsgBox "ポイント番号=" & PointIndex 'MsgBox "系列数式=" & .SeriesCollection(SeriesIndex).Formula If PointIndex <> -1 Then myValues = .SeriesCollection(SeriesIndex).XValues xVal = myValues(PointIndex) 'MsgBox "X=" & myValues(PointIndex) myValues = .SeriesCollection(SeriesIndex).Values yVal = myValues(PointIndex) 'MsgBox "Y=" & myValues(PointIndex) End If End With Sheets("Sheet1").Cells(1, 2).Value = xVal Sheets("Sheet1").Cells(2, 2).Value = yVal 'Call Scale_set End Sub
↧