(Excel und Powerpoint 2011 für Mac)Excel-VBA ein Powerpoint-Makro-Aufruf fehlschlägt, während es direkt auf Powerpoint läuft funktioniert
Ich habe einen Excel-Makro, das eine Powerpoint öffnet und führt einen Makro. Wenn ich den Powerpoint-Makro direkt ausführen es funktioniert gut, aber wenn ich es aus dem Excel-Makro-Aufruf ausführen schlägt es mit Laufzeitfehler ‚68‘: Gerät nicht verfügbar
Es ist vor dieser Schleife:
Dim strfilee As String
mydir = ":tmp"
strpath = mydir & ":"
strfilee = Dir(strpath) <--- Failing on this line
''''Loop through each file in the folder to find the one with the OS parameters
i = 0
Do While Len(strfilee) > 0
cellplace = "A" & i
If Right(strfilee, 11) = "params.pptx" Then
lspace = InStr(1, strfilee, "_", vbTextCompare)
target_name = Trim(Left(strfilee, lspace - 1))
sc_file_name = "tmp" & ":" & strfilee
With ActivePresentation
number_slides = .Slides(.Slides.Count).SlideNumber
End With
ActivePresentation.Slides.InsertFromFile sc_file_name, number_slides
End If
strfilee = Dir
i = i + 1
Loop
So wird Ihre Pfadvariable auf ": tmp:" gesetzt. Ich kann nicht sehen, wie das in beiden Fällen funktioniert. Sollte es nicht eine lokale Laufwerksreferenz sein, z.B. "C: \ tmp \" oder ein Netzwerkstandort wie "\\ myServer \ tmp \". Laut MSDN verwendet die Dir-Funktion den PathName-Parameter als "String-Ausdruck, der einen Dateinamen, ein Verzeichnis oder einen Ordnernamen oder Laufwerkslautstärke-Label angibt." –
Hallo JamieG, danke für die Antwort. : tmp ist nur ein Verweis auf den tmp-Ordner in dem tatsächlichen Ordner, in dem sich die Präsentation befindet. Ich werde versuchen, es zum globalen zu ändern, um zu sehen, ob dies die Ursache sein kann. Vielen Dank! – Diego
Das behebt das Problem. Wenn Sie das Makro direkt auf dem Powerpoint ausführen, funktioniert der relative Pfad ": tmp:" einwandfrei. Wenn Sie das Powerpoint-Makro von Excel aufrufen möchten, müssen Sie die globale Route einfügen (activepresentation.path $ ": tmp:" – Diego