Редактировать легенду с помощью VBA - PullRequest
0 голосов
/ 23 марта 2020

Я скопировал диаграмму (эту диаграмму с легендой, которую я подготовил в Excel) из Excel в .ppt (код ниже). Как я могу изменить / отредактировать legend.Top и legend.size?

Мой код не работает ...

Sub pptfromexcel()
    Dim pptapp As PowerPoint.Application
    Dim pptppt As PowerPoint.Presentation
    Dim pptsld As PowerPoint.Slide
    Dim shp As Object
    Set chart1 = ActiveSheet.ChartObjects("Chart 1")
    'Dane do wykresów
    Set d5 = Sheets("Wykresy").Range("Q32:S40")
    Set d6 = Sheets("Wykresy").Range("Q47:S51")

    Set v1PK = Sheets("Wykresy").Range("G7:G7")
    Set v1PM = Sheets("Wykresy").Range("G8:G8")

    Set pptapp = New PowerPoint.Application
    Set pptppt = pptapp.Presentations.Open("C:\Users\Desktop\ppt.pptx")
    pptapp.Visible = True
    pptapp.Activate

    Set pptsld2 = pptppt.Slides(2)


    chart1.Copy
    Set chart1a = pptsld2.Shapes.PasteSpecial

    With chart1a
        .Height = 132
        .Width = 157
        .Left = 26.1
        .Top = 120
        .haslegend=true
        .legend.size = 12
        .legend.top = 150
    End With
End Sub

1 Ответ

1 голос
/ 23 марта 2020

Первые четыре свойства, которые вы устанавливаете, являются общими c свойствами для всех фигур. Свойства легенды задаются c для диаграммы. Первое, что должно произойти, это то, что он вставляется как объект Excel. Если это так, у вас есть свойство Chart на вашей фигуре, и вы можете сделать так:

With chart1a
    .Height = 132
    .Width = 157
    .Left = 26.1
    .Top = 120
    .Chart.HasLegend = True
    .Chart.Legend.Size = 12
    .Chart.Legend.Top = 150
End With
...