私は、選択したポイントのシリーズでXValueを見つけ出すためのより良い(よりきれいな)方法を探しています。ポイントは、ユーザによって(クリックすることによって)選択され、従って、インデックスは未知である。現在のメソッドは各ポイントをループし、名前が理論上は2つの異なるポイントで同じになる可能性があるため、あまりエレガントではない名前を比較します。ポイントオブジェクトからX値または値を見つけよう
XValuesは日付であり、2種類のグラフがあります。シリーズ名はデータテーブルにある日付であり、ポイントXValueはデータテーブルにある日付である。以下のコードはクラスモジュールからのものです。チャート内のデータが選択されると、データテーブルの対応する行も選択されます。
Option Explicit
' Declare object of type "Chart" with events
Public WithEvents EvtChart As Chart
Private Sub EvtChart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
Dim d As Date, r As Range
If TypeOf Selection Is Series And IsDate(Selection.Name) Then
d = CDate(Selection.Name)
ElseIf TypeOf Selection Is Point Then
If IsDate(Selection.Parent.Name) Then
d = CDate(Selection.Parent.Name)
Else
Dim s As Series, p As Point, i As Long
Set s = Selection.Parent
Set p = Selection
For i = 1 To s.Points.Count
If p.Name = s.Points(i).Name Then
d = s.XValues(i)
Exit For
End If
Next
End If
Else
Exit Sub
End If
Set r = Range(Summary.Cells(HROW + 2, 1), Summary.Cells(1048576, 1).End(xlUp)).Find(d, , xlFormulas)
If Not r Is Nothing Then r.EntireRow.Select
End Sub
設定された手順の写真を含めて、それらの写真でリクエストを伝えることはできますか? –
私はあなたの質問を理解していません。これは、チャートに、このイベントを追加するものを除いて、全体のコードです:新CEventChartとして暗いclsEventChart サブInitEvents() 設定clsEventChart.EvtChart = Summary.ChartObjects(「DynChart」)にしてみ – j74nilsson
End Subのチャート。あなたの質問を投稿する[この回答のように](http://stackoverflow.com/a/38949184/3397819) –