在演示模式下添加幻灯片时,VBA OnSlideShowPageChange崩溃

时间:2017-06-03 06:03:33

标签: excel vba powerpoint

我一直在使用下面的代码,似乎无法弄清楚导致PowerPoint在最后一行崩溃的原因。我在其他潜艇中使用了相同的代码块而没有问题。我怀疑这可能与onslideshowpagechange函数有关。

代码通过PowerPoint中的VBA编辑器运行,包含以下库。

Reference Libraries

我基本上希望在演示模式下发生幻灯片更改时执行代码。我想要添加幻灯片的导致崩溃的部分代码。

提前感谢您的帮助!

Public Function GetLayout( _
LayoutName As String, _
Optional ParentPresentation As Presentation = Nothing) As CustomLayout

If ParentPresentation Is Nothing Then
    Set ParentPresentation = ActivePresentation
End If

Dim oLayout As CustomLayout
For Each oLayout In ParentPresentation.SlideMaster.CustomLayouts
    If oLayout.Name = LayoutName Then
        Set GetLayout = oLayout
        Exit For
    End If
Next
End Function


Sub onslideshowpagechange(ByVal SSW As SlideShowWindow)

Dim oXL As Object 'Excel.Application
Dim oWb As Object 'Excel.Workbook
Dim oSld As Slide

' Check excel workbook file status, if not open then open
Dim file_status
file_status = IsWorkBookOpen("C:\Users\schuec1\Desktop\Peoria 2017 Media\Live Analysis\Live_Analysis.xlsx")
If file_status = False Then
Set oXL = CreateObject("Excel.Application")
Set oWb = oXL.Workbooks.Open(FileName:="C:\Users\schuec1\Desktop\Peoria 2017 Media\Live Analysis\Live_Analysis")
Else
Set oXL = Excel.Application
Set oWb = ActiveWorkbook 
End If

Dim sld_no As Long
Dim course As String
Dim sld_offset As Long
Dim teamno As Long
Dim lead_sld As Long
Dim cntry As String
Dim pic_flag As Shape
Dim row_space As Shape
Dim team_range As Range
Dim school As String
Dim time_car As Double
Dim diff As Double
Dim time_one As Double
Dim pos As Long
Dim dist As Double
Dim dist_one As Double
Dim pplayout As CustomLayout

sld_no = SSW.View.CurrentShowPosition

'Acceleration leaderboard
If sld_no = 1001 Then

lead_sld = sld_no

With ActivePresentation
.Slides(lead_sld).Delete
End With

Debug.Assert lead_sld <> sld_no
Set oSld = ActivePresentation.Slides.AddSlide(lead_sld, GetLayout("accel"))

0 个答案:

没有答案