2

奇妙な要件に遭遇しました。

ユーザーがチャート エリアをクリックしたときに、チャートから X 軸の値を取得する必要があります。

グラフにマクロを割り当てることができることは知っています。このように、チャートのイベントを作成することができます。しかし、さらに先に進む方法がわかりません。

これを行うアイデアはありますか?

ありがとう。

4

1 に答える 1

5

チャートがチャート シートにある場合は、チャート シート タブを右クリックし、[コードを表示] を選択して、コード モジュールに以下を貼り付けます (下のスクリーンショットを参照)。

Option Explicit

Private Sub Chart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
    Select Case ElementID
    Case xlSeries
       If Arg2 > 0 Then
           MsgBox "Series " & Arg1 & vbCr & "Point " & Arg2
       End If
    Case Else
       MsgBox Arg1 & vbCr & Arg2
    End Select
End Sub

ここに画像の説明を入力

チャートがシートに埋め込まれている場合はWithEvents、@brettdj が既にここで説明しているように使用する必要があります

ファローアップ

これはあなたがしようとしていることですか?

Private Sub Chart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
    Select Case ElementID
    Case xlSeries
        If Arg2 > 0 Then
            x = ActiveChart.SeriesCollection(Arg1).XValues
            For i = LBound(x) To UBound(x)
                If i = Arg2 Then
                    MsgBox "Point :" & i & "and X Value = " & x(i)
                    Exit For
                End If
            Next i
       End If
    End Select
End Sub

ここに画像の説明を入力

于 2013-03-29T13:47:53.057 に答える