1

14シリーズのチャートがあります。同様に、これらの各シリーズに関連付けられた 14 のチャートがあります。特定のシリーズが選択されたときに呼び出すことができるマクロを作成しようとしています。シリーズが選択されると、マクロは対応するチャートを表示し、ユーザーにより詳細なデータを提供します。

これは私がこれまでに思いついたものです(私は弱いプログラマーですのでご了承ください)。私が彼の正しい軌道に乗っているかどうか教えてください。そうでない場合は、方向性を教えてください。このコードは現在、「オブジェクトはこのプロパティまたはメソッドをサポートしていません」というエラー メッセージを表示します。

ありがとう!

Sub Macro1()

Dim Series6 As Object
Set Series6 = ActiveChart.SeriesCollection(1).Points(6)

   If Series6.Select Then
   Sheets("Sheet1").ChartObjects("Chart 2").Visible = True
   End If
End Sub
4

1 に答える 1

3

このタイプのものを処理するチャート イベントを作成できます。

仮定:

  • チャートはオンですSheet1
  • マスター チャートの名前Chart 1
  • 詳細チャートは、シリーズ番号 +1 にちなんで命名されます (例:Series 1関連Chart 2)

チャート イベントを設定するには、次の手順に従います。

  1. という名前のクラス モジュールを作成します。EventClassModule
  2. このモジュールにコードを追加

    Option Explicit
    
    Public WithEvents myChartClass As Chart
    
    Private Sub myChartClass_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
        Dim ChartName As String
        Dim i As Long
        If ElementID = 3 And Arg1 = 1 Then ' 3 indicates a Series
            ChartName = "Chart " & Arg2 + 1 ' Arg1 is the series number
            With Worksheets("Sheet1")
                ' Hide all sub charts
                For i = 2 To .ChartObjects.Count
                    .ChartObjects(i).Visible = False
                Next
                ' Show the required chart
                .ChartObjects(ChartName).Visible = True
            End With
        End If
    End Sub
    
  3. クラス モジュールを初期化します (ワークブックを開くイベントとして行うのが最適です。このコードをThisWorkbookモジュールに入れます) 。

    Option Explicit
    
    Dim myClassModule As New EventClassModule
    
    Private Sub Workbook_Open()
        Set myClassModule.myChartClass = _
            Sheet1.ChartObjects("Chart 1").Chart
    End Sub
    

これで、シリーズをChart 1選択すると、関連する詳細グラフが表示され、その他は非表示になります

便利なリンク
MSDN チャート オブジェクト イベント
MSDN チャート選択イベント

于 2013-10-18T20:25:04.527 に答える