私は3つの列テーブルを持っています。 2つの列は、散布図の生成に使用されるxy値を提供します。 3番目の列にはハイパーリンクが含まれています。各行にはx値、y値、ハイパーリンクが含まれています(各リンクは一意です)。 Excelの散布図のデータポイントをクリックすると、対応するハイパーリンクのセルアドレスを取得するにはどうすればよいですか?Excel散布図のデータポイントをクリックしてセルアドレスを取得するにはどうすればよいですか?
0
A
答えて
1
これを行う1つの方法は、ハイパーリンクの列を名前付き範囲に含めることです。彼らがいったんそれを見れば、それはチャートからそれらを参照するのに十分なほどまっすぐです。
あなたが求めているものは完全にはわかりませんが、データポイントをクリックするとY値/セルの横にあるセルの値のメッセージボックスがポップアップ表示されます。
これを行う1つの方法は、ハイパーリンクの列を名前付き範囲に含めることです。彼らがいったんそれを見れば、それはチャートからそれらを参照するのに十分なほどまっすぐです。
あなたは別のチャートワークシート上のグラフを持っているなら、あなたは(チャートワークシートモジュールに組み込まれた)次のコードを使用することができます。
Private Sub Chart_MouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
Dim lngElementID As Long
Dim lngArg1 As Long
Dim lngArg2 As Long
'Only catch Left-Clicks
If Button = xlPrimaryButton Then
With ActiveChart
'Get the coordinates of what has been clicked
call .GetChartElement(x, y, lngElementID, lngArg1, lngArg2)
If lngElementID = xlSeries Then
If lngArg2 > 0 Then
'Range containing the messages to be displayed
Set varRange = Worksheets("Sheet1").[ChartURLs]
Call MsgBox(CStr(varRange(lngArg2, 1)))
End If
End If
End With
End If
End Sub
チャートは、単に通常のワークシートに埋め込まれている場合があり、 WithEventsを使用してChartイベントを捕捉する必要があるため、さらに多くのことを行います。新しいクラスモジュールに次のコードを追加します。
Option Explicit
Public WithEvents chartEvents As Chart
Private m_rngPopupMsgs As Range
Private Sub chartEvents_MouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
Dim lngElementID As Long
Dim lngArg1 As Long
Dim lngArg2 As Long
Dim varRange As Variant
'Only catch Left-Clicks
If Button = xlPrimaryButton Then
With ActiveChart
'Get the coordinates of what has been clicked
.GetChartElement x, y, lngElementID, lngArg1, lngArg2
If lngElementID = xlSeries Then
If lngArg2 > 0 Then
If Not (m_rngPopupMsgs Is Nothing) Then
Set varRange = m_rngPopupMsgs
Call MsgBox(CStr(varRange(lngArg2, 1)))
End If
End If
End If
End With
End If
End Sub
Public Property Get PopupMsgs() As Range
Set PopupMsgs = m_rngPopupMsgs
End Property
Public Property Set PopupMsgs(rngPopupMsgs As Range)
Set m_rngPopupMsgs = rngPopupMsgs
End Property
Private Sub Class_Terminate()
Set m_rngPopupMsgs = Nothing
End Sub
次に、新しいコードモジュールを追加し、次のコードを追加します。
グラフを含むワークシートのワークシートモジュールでOption Explicit
Private m_objChtEvents As New clsChartEvents
Public Sub SelectChart(ByRef wks As Worksheet, ByRef rngPopupMsgs As Range)
Dim objChart As Chart
If wks.ChartObjects.Count > 0 Then
Set m_objChtEvents = New clsChartEvents
Set objChart = wks.ChartObjects(1).Chart
Set m_objChtEvents.chartEvents = objChart
Set m_objChtEvents.PopupMsgs = rngPopupMsgs
End If
End Sub
ザ・「ChartURLs」を置き換える、次のように、あなたはWorksheet_Activateイベント(またはお好みの他のイベント)からSelectChart()プロシージャの呼び出しを追加する必要がありますあなたの範囲の名前を持つ:
Option Explicit
Private Sub Worksheet_Activate()
Call SelectChart(Me, Range("ChartURLs"))
End Sub
うまくいけば、これはあなたが探しているものの一種である、そうでない場合は、それは少なくとも良いスタートでなければなりません。
関連する問題
- 1. Excelでの散布図の散布図の直線的散布
- 2. Excel散布図の各データポイントまたはデータラベルにWebページリンクを追加
- 3. 散布図に複数の色を表示するにはどうすればよいですか?
- 4. JavaFX 2.0の散布図にドットを配置するにはどうすればよいですか?
- 5. ggplot2の場合、散布図にカーブを追加するにはどうすればよいですか?
- 6. コアプロット散布図の色を変更するにはどうすればよいですか?
- 7. .NETを使用してExcel散布図の個々の点の色を設定するにはどうすればよいですか?
- 8. Highchartsの3D散布図で気泡のサイズを変更するにはどうすればいいですか?
- 9. C#を使用してExcelでデータポイントをプロットするにはどうすればよいですか?
- 10. JFreeChart散布図最適線を作成するにはどうすればいいですか
- 11. 散布図点に名前を付けるにはどうすればいいですか?
- 12. OpenGLを使用してC++で多くのデータポイントを持つ散布図を描画する最良の方法
- 13. nvd3散布図
- 14. フレックス散布図?
- 15. データフレームを使用して散布図でボケの凡例を表示するにはどうすればよいですか?
- 16. seabornを使用して接続点を持つ複数のシリーズ散布図を作成するにはどうすればよいですか?
- 17. MatPlotLibで作成された散布図で、異なる色の異なる色を割り当てるにはどうすればよいですか?
- 18. getElemetByNameを使用してクリックしたボタン名を取得するにはどうすればよいですか?
- 19. matplotlibの散布図
- 20. matplotlibを使って3次元散布図のマーカーの凡例を作成するにはどうすればよいですか?
- 21. 散布図のマトリクス内のすべての散布図を使ってアブラインを挿入
- 22. ggplot2散布図ラベル
- 23. wpfツールキット散布図
- 24. 散布図のノードを1つずつプロット/追加するためにd3を使用するにはどうすればよいですか?
- 25. メールのリンクをクリックした人のメールアドレスを取得するにはどうすればよいですか?
- 26. クリックしたノードのIDをcytoscape.jsで取得するにはどうすればよいですか?ドキュメントの
- 27. iPhoneの散布図に複数のデータセット(各データセットに異なる色)を描画するにはどうすればよいですか?
- 28. スカラデータを含む散布図
- 29. クリックしたときにlistviewからテキスト値を取得するにはどうすればよいですか?
- 30. 散布図に対数回帰直線を追加する(Excelとの比較)