Редактирование диаграммы PowerPoint через VBA - Office365 - PullRequest
0 голосов
/ 26 февраля 2019

Мне нужно немного задержаться с моим сценарием.Сначала, пока мы не перешли на Office365, мой скрипт работал нормально.Но сейчас есть некоторые странные случайные ошибки, которые я не понимаю.Какова моя тема: у меня есть пользовательская форма, где я могу заполнить некоторые значения.Эти значения необходимы для обновления нескольких диаграмм в документе PowerPoint.Первый импорт работает нормально, но второй импорт не удается.Таблица диаграммы данных теряется.У кого-нибудь есть объяснение?

Внизу вы найдете мой код.

    Option Strict On
    Imports Excel = Microsoft.Office.Interop.Excel
    Imports PowerPoint = Microsoft.Office.Interop.PowerPoint
    Imports System.IO

    Public Class Eingabemaske
    Private Sub ButtonGutachtenErstellen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ButtonGutachtenErstellen.Click

    Dim AppPfad As String = Application.StartupPath

    Dim PPT As PowerPoint.Application
    Dim PPTDoc As PowerPoint.Presentation
    Dim Chart As PowerPoint.Chart

    Dim WorkBook As Excel.Workbook
    Dim WorkSheet As Excel.Worksheet

    Dim PPTPfad As String = "Vorlagen\Gutachtenvorlage.potx"


    PPT = CType(CreateObject("PowerPoint.Application"), PowerPoint.Application)
    If File.Exists(Path.Combine(AppPfad, PPTPfad)) Then
        PPTDoc = PPT.Presentations.Open(Path.Combine(AppPfad, PPTPfad), Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoCTrue)
        LabelStatus.Text = "Die Dokumentenvorlage wurde geladen."
    Else
        MsgBox("Die Dokumentenvorlage konnte nicht geöffnet werden. Bitte überprüfen Sie, ob die Datei vorhanden ist. Es wurde kein Gutachten erstellt.")
        PPT.Quit()
        PPTDoc = Nothing
        LabelStatus.Text = "Gutachtenerstellung fehlgeschlagen!"
        Exit Sub
    End If

        With PPTDoc.Slides(1).Shapes
            If CBool(.Item("Contentshape").HasChart) Then
                Chart = CType(.Item("Contentshape").Chart, PowerPoint.Chart)
                Chart.ChartData.Activate()
                WorkBook = CType(Chart.ChartData.Workbook, Excel.Workbook)
                WorkSheet = CType(WorkBook.Sheets(1), Excel.Worksheet)

                With WorkSheet
                    .Range("C7").Value = #wert
                End With

                WorkBook.Close()
            End If

Конец

...