슬라이서에서 선택한 항목을 변경하는 Excel 차트가 있습니다. 플롯 영역과 범례 영역이 선택한 선택 사항에 따라 변경되었음을 확인했습니다.vba 범례 및 플롯 영역 크기 조정
vba를 사용하여 플롯 영역의 위치와 크기를 수정하려고했지만 간단히 불행하게도 작동하지 않습니다.
플롯 영역과 범례는 크기 조정을 계속하므로 범례가 플롯 영역과 겹치게됩니다. 나는 분명히 원하지 않는다.
내가 VBA 편집기의 워크 시트 페이지에 배치이 코드를 가지고 :
Option Explicit
Private Sub Chart_Calculate()
ChartObjects("grafiek 4").Activate
ActiveChart.PlotArea.Width = 637.783
ActiveChart.Legend.Left = 716.514
ActiveChart.Legend.Width = 176.735
ActiveChart.Legend.Height = 295.334
End Sub
이 코드를 갖는, 나는 자동 크기 조절이 사라질 것이라고 가정하지만, 내가 본 전설은 때때로 여전히 테 플롯 영역을 중첩 .
이 문제를 영구적으로 해결할 수있는 해결책이 있습니까?
EDIT1 :
어제, 난 그저 그림 영역에 대한 몇 가지 매개 변수를 추가했다. 그 때 일하는 것 같았다. 그러나 이제 다시 시도해 보았습니다. 전설은 음모 영역을 다시 겹치고 있습니다. 그림 영역에 대한
Option Explicit
Private Sub Chart_Calculate()
ChartObjects("grafiek 4").Activate
ActiveChart.PlotArea.Top = 33.102
ActiveChart.PlotArea.Left = 67.1
ActiveChart.PlotArea.Width = 637.783
ActiveChart.Legend.Top = 7
ActiveChart.Legend.Left = 716.514
ActiveChart.Legend.Width = 176.735
ActiveChart.Legend.Height = 329.667
End Sub
그래서 2 개 paramters :
나는에 코드를 변경했습니다.edit2 : Excel의 범례 속성을 확인했습니다. '전설에 대한 옵션'아래에 체크 상자가 있습니다 : 겹쳐진 플롯 영역없이 범례 표시 (정확한 영어 텍스트를 모르겠습니다). 이 상자는 선택되어 있지만 플롯 영역과 겹칩니다.
왜 이것을 수행하는 것이 불가능합니까? 플롯 영역과 범례에 고정 된 크기를 갖는 것이 그렇게 어렵지 않아야합니다.
편집 3 :
Option Explicit
Private Sub Chart_Calculate()
ChartObjects("grafiek 4").Activate
With ActiveChart
With .PlotArea
.Top = 33.102
.Left = 67.1
.Width = 637.783
End With
With .Legend
.IncludeInLayout = True
.Position = xlLegendPositionRight
.AutoScaleFont = False
.Font.Size = 8
.Top = 5
.Left = 706.899
.Width = 179.735
.Height = 336.681
End With
End With
End Sub
Sub kopieergrafiek()
ActiveSheet.ChartObjects("Grafiek 4").Copy
End Sub
내가 작동하지 않는 것
(내 게시물 아래의 코멘트에 제안 포함) : 나는 내 통합 문서에서 지금이 루틴을해야합니까. worksheet_change 이벤트가 더 잘 작동합니까?
편집 4 : 아직이 문제에 대한 해결책이 없습니다. 전설 항목 중 1 개의 이름이 공간에 맞게 길어지면 이미 발생합니다. 그리고 전설에있는 많은 항목을 사용할 수있는 공간에 맞춰야 할 때도 발생합니다.
여기에는 해결책이 없다고 생각합니다. 내가 어떻게 든 전설에서 항목의 수를 최대화하는 데 탁월하다고 말할 수 없다면. 또는 시리즈 이름의 길이를 최대화 할 수 있습니다.
정확하지 않을 수도 있습니다. 그러나 'ActiveChart.Legend.IncludeInLayout = True'와 같이 그림 영역과 범례를 분리하고 다음과 같이 위치를 설정할 수 있습니다 :'ActiveChart.Legend.Position = xlLegendPositionRight' –