2017-05-04 1 views
1

차트를 만들고 나중에 PowerPoint 시트의 올바른 위치로 다시 배치하려고합니다. 그러나 런타임 오류가 발생합니다. 코드의 관련 비트는 다음과 같습니다위치 조정 차트 개체 VBA

Dim myChart As chart 
Dim gChartData As ChartData 
Dim gWorkBook As Excel.Workbook 
Dim gWorkSheet As Excel.Worksheet 

'Create the chart and set a reference to the chart data. 
Set myChart = ActivePresentation.Slides(2).Shapes.AddChart.chart 
Set gChartData = myChart.ChartData 

'Set the Workbook and Worksheet references. 
Set gWorkBook = gChartData.Workbook 
Set gWorkSheet = gWorkBook.Worksheets(1) 

    With myChart 
     .ChartType = xlColumnStacked 
     .ChartStyle = 30 
     .ApplyLayout 4 
     .ClearToMatchStyle 
    End With 

    With myChart 
     .PlotArea.Left = 290 
     .PlotArea.Top = 90 
    End With 

(내 차트 데이터 코드에없는) 나는 다음과 같은 오류 코드가 나타날 수

오류 : 런타임 동안 -2147467259 (80004005) :

를 객체 PlotArea의

방법 왼쪽 일부 검색은 이미 내가 매크로 보안에 문제가있을 수 있습니다 제안하지만 옵션에서 모든 매크로 함수는 똥개 있습니다

실패 임대료 허용.

추가 정보가 필요하면 알려주십시오.

답변

0

코드는 컨테이너 모양 자체를 이동하는 대신 차트가 추가 된 모양 내에서 이동합니다.

당신은 myChart의 부모 이동해야

:

Sub Test() 

    Dim myChart As Chart 
    Set myChart = ActivePresentation.Slides(2).Shapes.AddChart.Chart 

    With myChart 
     .ChartType = xlColumnStacked 
     .ChartStyle = 30 
     .ApplyLayout 4 
     .ClearToMatchStyle 

     'Move shape containing chart on PPT. 
     With .Parent 
      .Left = 290 
      .Top = 90 
     End With 

     'Move chart plot area within chart (I think). 
     .PlotArea.Left = 290 
     .PlotArea.Top = 90 
    End With 

End Sub 

나는 당신이 가지고있는 오류가 발생하지 않았다,하지만 그 모양 외부 PlotArea를 이동하려고 할 수 있을까?

+0

감사합니다. 이것은 나를 위해 일한다. – Onno