AW: prüfen ob .ppt offen ist.
01.10.2015 08:59:45
Arne
ich hab das so versucht:
Private Sub Label15_Click()
Dim ObjPP As Object
Dim objP As Object 'powerpoint.Presentation
Dim objCL As Object 'PowerPoint.CustomLayout
Dim objS As Object 'PowerPoint.Slide
If IspptOpen("test-schedule.pptx") Then
MsgBox ("auf")
Else
MsgBox ("zu")
End If
Stop
Set ObjPP = CreateObject("Powerpoint.application")
Set objP = ObjPP.presentations.Open("I:\[...]\test-schedule.pptx") '[...] dateipfad
Set objCL = objP.SlideMaster.CustomLayouts(1)
Set objS = objP.Slides.AddSlide(1, objCL)
Worksheets("Mo AM").Range("A1:X29").CopyPicture
With objS.Shapes.Paste 'Powerpoint.shaperange
.Left = (objCL.Width - .Width) / 2
.Top = (objCL.Height - .Height) / 2
End With
ObjPP.DisplayAlerts = False
objP.Save
ObjPP.DisplayAlerts = True
ObjPP.Quit
End Sub
msgboxen und stop ist gerade nur zu testzwecken drin. sobald ich da die lösung zu habe, wird das öffnen logischerweise in die IF-schleife geschrieben.
die function für isPPTOpen ist:
Function IspptOpen(strPPT As String) As Boolean
On Error Resume Next
IspptOpen = Not Powerpoint.Application.presentations(strPPT) Is Nothing
End Function
für Excel workbooks hab ich folgendes drin, und das funktioniert auch
Function IsWorkbookOpen(strWB As String) As Boolean
On Error Resume Next
IsWorkbookOpen = Not Workbooks(strWB) Is Nothing
End Function
mit dem aufruf
If IsWorkbookOpen("Anwesenheit 2015.xlsm") Then
Else
Workbooks.Open Filename:=filepath & "\Anwesenheit 2015.xlsm"
End If
bin für jede Anregung dankbar. auch wenn ihr mir sagt, dass mein Ansatz kompletter schrott sei :)