Übergeben einer Variante durch COM-Objekt über PowerShell, um ein Makro in PowerPoint auszuführen

8

Der Versuch, den Titel aneinander zu reihen, war eine Herausforderung ...

Ich versuche einige PowerPoint-Makros von PowerShell auszuführen. Ich bin ziemlich gut darin geworden, Makros von Powershell für Excel auszuführen. Wenn ich die Makros in Excel ausführe, wird die Methode Run () vom COM-Objekt eine Vielzahl von Argumenten annehmen, abhängig davon, ob das Makro irgendwelche Parameter hat. Auf der anderen Seite erwartet die PowerPoint-Methode Run () Parameter, und ich kann nicht herausfinden, wie sie übergeben werden.

Mein Makro erwartet, dass eine Zeichenfolge durchgelassen wird, ich habe viel gegoogelt und bin zu kurz gekommen. Ich bekomme immer diesen Fehler:

Fehler:

%Vor%

Ich habe ein sehr einfaches PoC für PowerPoint in PowerShell zusammengestellt:

Code:

%Vor%

Das Makro selbst bewegt nur etwas Text über Boxen, es funktioniert gut, wenn es von PowerPoint ausgeführt wird.

Voraussetzung:

Ich möchte das jetzt über mehrere Dateien und Folien hinweg automatisieren.

Dokumentation zum PowerPoint-COM-Objekt Run-Methode , die die Anforderung für zwei Parameter zeigt .

    
Chris 23.02.2016, 14:19
quelle

2 Antworten

4

Gute Frage und nicht viele Beispiele online, wie Sie sagen. Ich habe es geschafft, Ihr Beispiel noch weiter zu streichen und erfolgreich Text an eine MsgBox in einem PowerPoint-Makro zu übergeben, ohne wirklich zu ändern, was Sie hatten.

Das Makro in der Datei PowerShellTest.pptm gespeichert in C: \ Temp

%Vor%

Das PowerShell-Skript:

%Vor%

Der von Ihnen bereitgestellte Link zur Methode "Methode ausführen" erwähnt, dass der Modulname enthalten sein kann, damit dies auch für mich funktioniert:

%Vor%     
Jamie Garroch 23.02.2016 15:47
quelle
1

Versuchen Sie vielleicht, [ref] in der unten stehenden Codezeile zu entfernen oder versuchen Sie, es in [val]

zu ändern %Vor%

Also entweder:

%Vor%

oder:

%Vor%

Und stellen Sie dann auch sicher, dass das PowerPoint-Makro erwartet, dass die Variable ByVal übergeben wird. Zum Beispiel so etwas:

%Vor%     
J. Garth 04.04.2017 13:12
quelle