Fehler beim Löschen von Folien basierend auf INI-Datei in PowerPoint COM VBA Topic is solved

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Nussbeisser
Posts: 108
Joined: 17 Jul 2019, 08:49

Fehler beim Löschen von Folien basierend auf INI-Datei in PowerPoint COM VBA

Post by Nussbeisser » 04 Jun 2023, 12:39

Hallo,

ich habe eine INI-Datei mit dem folgenden Inhalt:

Code: Select all

[Sliders]
1=20230510182912
2=20230514182921
Mein Ziel ist es, basierend auf den Werten aus der INI-Datei Folien in PowerPoint VBA zu löschen, wenn das Datum älter als 25 Tage ist. Ich habe dazu folgenden Code verwendet:

Code: Select all

powerpoint := ComObjCreate("Powerpoint.Application")
presentation := powerpoint.Presentations.Open(PowerName)

IniRead, iniInhalt, Power.ini, Sliders
LoescheFolieAbTag := 20
Loop, Parse, % iniInhalt, `n, `r
{
    if (A_LoopField = "")
        continue

    TeiZei := StrSplit(A_LoopField, "=")
    DelPage := TeiZei[1]
    FolieErstellDatum := TeiZei[2]

    UnterschiedInTagen := A_Now
    UnterschiedInTagen -= FolieErstellDatum, D

    if (UnterschiedInTagen >= LoescheFolieAbTag){
        presentation.Slides(Trim(DelPage)).Delete ; Dies funktioniert nicht und es erscheint ein Fehler
        ;presentation.Slides(1).Delete ; Dies funktioniert
        ;presentation.Slides(2).Delete ; Dies funktioniert
    }
}
Leider erhalte ich einen Fehler, wenn ich presentation.Slides(Trim(DelPage)).Delete verwende, um die Folie zu löschen. Der Fehler lautet:
  • Error: 0x80048240 - Description: Item 1 not found in the Slides collection.
Obwohl der direkte Zugriff auf Folien über die Indexe 1 und 2 funktioniert, scheint der Zugriff über den Wert aus der INI-Datei nicht zu funktionieren.

Könnt ihr mir bitte bei der Behebung dieses Problems helfen? Gibt es möglicherweise eine spezielle Formatierung für die Werte in einer INI-Datei, die ich berücksichtigen muss?

Vielen Dank im Voraus für eure Unterstützung!

just me
Posts: 9423
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Fehler beim Löschen von Folien basierend auf INI-Datei in PowerPoint COM VBA  Topic is solved

Post by just me » 05 Jun 2023, 02:16

Moin,

wahrscheinlich ist das ein Typfehler. Die mit DelPage := TeiZei[1] erzeugte Variable enthält eine numerische Zeichenkette (String). Und das Trim in presentation.Slides(Trim(DelPage)).Delete erzeugt auch einen String. Manche COM-Funktionen mögen das nicht, wenn sie einen 'echten' numerischen Wert erwarten. Du kannst es mal so versuchen:

Code: Select all

presentation.Slides(DelPage + 0).Delete
Das + 0 sorgt dafür, dass AHK einen numerischen Wert übergibt.

Nussbeisser
Posts: 108
Joined: 17 Jul 2019, 08:49

Re: Fehler beim Löschen von Folien basierend auf INI-Datei in PowerPoint COM VBA

Post by Nussbeisser » 05 Jun 2023, 13:40

vielen Dank! Für deine unschätzbare Hilfe.

Post Reply

Return to “Ich brauche Hilfe”