제목에서 알 수 있듯이 그래프의 계열을 선택할 때마다 매크로를 자동으로 실행할 수 있기를 원합니다. 마지막 막대가 빨간색으로 표시되어야하며 매크로로이를 수행 할 수 있지만 새 데이터 시리즈를 선택하면 빨간색 막대가 이전 데이터 선택의 마지막 막대입니다. 따라서 첫 번째 선택에 4 개의 값이 있고 다음 선택에 대해 7 개의 값을 선택하면 4 번째 막대가 빨간색으로 표시됩니다.
이것은 내가 사용하는 매크로입니다.
Sub CustomChartMacro()
Application.ScreenUpdating = True
Dim w As Worksheet
Dim chtSeries As Excel.Series
Dim i As Long
Dim a As Long
'Call CustomChartMacro a = ActiveChart.SeriesCollection(1).Points.Count * ActiveChart.SeriesCollection.Count
For Each chtSeries In ActiveChart.SeriesCollection
With chtSeries
For i = a To .Points.Count
If .Values(i) = a Then
.Points(i).Interior.Color = RGB(204, 9, 47)
Else
.Points(i).Interior.Color = RGB(89, 89, 91)
End If
Next i
End With
Next chtSeries
End Sub
제안 해 주셔서 감사합니다.
Chart_Select
이벤트 를 사용하여 차트 시트에 차트가있는 경우이 코드가 실행되도록 자동화 할 수 있습니다 . 차트에서 시리즈를 클릭 할 때마다 코드가 실행됩니다.
차트 시트 탭 이름을 마우스 오른쪽 버튼으로 클릭하고 코드보기를 선택하고 차트 시트에이 모듈을 복사합니다.
Private Sub Chart_Select(ByVal ElementID As Long, ByVal Arg1 As Long, ByVal Arg2 As Long)
If ElementID = xlSeries Then CustomChartMacro
End Sub
아래 코드는 어떻습니까? 포인트가 시리즈의 마지막 포인트인지 확인하고 색상을 빨간색으로 설정하고 그렇지 않으면 모든 색상을 검은 색으로 설정합니다.
Sub CustomChartMacro()
Application.ScreenUpdating = True
Dim w As Worksheet
Dim chtSeries As Excel.Series
Dim i As Long
Dim a As Long
For Each chtSeries In ActiveChart.SeriesCollection
With chtSeries
a = .Points.Count
For i = 1 To a
If i = a Then
.Points(i).Interior.Color = RGB(204, 9, 47)
Else
.Points(i).Interior.Color = RGB(89, 89, 91)
End If
Next i
End With
Next chtSeries
End Sub
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다