2016-12-09 1 views
3

Excel에서 차트가 있습니다. 나는 녹색 상자를 선택하고 아래의 매크로 실행Excel VBA 차트 자동 모양 위쪽 왼쪽 위치

excelChart.Shapes.AddShape(msoShapeRectangle, 0, 0, excelChart.ChartArea.width, 15) 

Chart with shape

:

Sub Macro6() 

    Selection.ShapeRange.Left = 0 
    Selection.ShapeRange.Top = 0 

End Sub 

나는 녹색 상자를 기대했다가 위치 할을 내가 함께 차트 모양을 추가했습니다 오렌지색 차트 영역의 왼쪽 상단을 비 춥니 다. 그러나 위에서 볼 수 있듯이 위/왼쪽 제로 좌표가 시작되기 전에 약간의 여백이있는 것으로 보입니다.

어떻게 할 수 있습니까? 구석에 그린 박스를 프로그래밍 방식으로 배치합니까?

답변

1

IncrementLeftIncrementTop을 사용해보세요.

Sub AddBox() 
    Dim cht As Chart 

    Set cht = Worksheets(1).ChartObjects(1).Chart 

    With cht.Shapes.AddShape(msoShapeRectangle, 0, 0, cht.ChartArea.Width, 15) 
     .Name = "MyShape" 
     .IncrementLeft -5 //Experiment with number to get desired effect 
     .IncrementTop -5 
    End With 
End Sub 
+0

감사합니다. 이것이 내가 한 일입니다. 내가 읽을 수있는 재산이 있기를 바랬는데 5를 하드 코딩하지 않고이 여백/패딩에 대한 정확한 값을 줄 수있다. –

+1

차트 객체 모델에서 MSDN 문서를 보는 데 45 분이 걸렸지 만 눈에 띄지는 않았다. 재산. 내 솔루션이 약간의 해킹을 느낀 것에 동의하십시오. 어쩌면 VBA 빅 타타 중 한 명이이 어두운 구석을 밝힐 수 있습니다! –