Visible = True here; but your code will 'run faster if you don't make it visible 'Open the workbook Set o WB = o XL. Open(File Name:=Workbook To Work On) Set o Sheet = o WB.
Screen Updating = False Workbook To Work On = "C:\forms\Line Clearance.xls" 'If Excel is running, get a handle on it; otherwise start a new instance of Excel On Error Resume Next Set o XL = Get Object(, "Excel. Number 0 Then Excel Was Not Running = True Set o XL = New Excel. Screen Updating = False End If On Error Go To Err_Handler 'If you want Excel to be visible, you could add the 'line: o XL.
Declare Function Find Window Lib "user32" Alias "Find Window A" _ (By Val lp Class Name As String, _ By Val lp Window Name As Long) As Long ' Use Lock Window Update to prevent/enable window refresh Declare Function Lock Window Update Lib "user32" _ (By Val hwnd Lock As Long) As Long ' Use Update Window to force a refresh of the Power Point window Declare Function Update Window Lib "user32" (By Val hwnd As Long) As Long Property Let Screen Updating(State As Boolean) Static hwnd As Long Dim Version No As String ' Get Version Number If State = False Then Version No = Left(Application. Version, ".") - 1) ' Get handle to the main application window using Class Name Select Case Version No Case "8" ' For PPT97: hwnd = Find Window("PP97Frame Class", 0&) Case "9" ' For PPT2K: hwnd = Find Window("PP9Frame Class", 0&) Case "10" ' For XP: hwnd = Find Window("PP10Frame Class", 0&) Case "11" ' For 2003: hwnd = Find Window("PP11Frame Class", 0&) Case "12" ' For 2007: hwnd = Find Window("PP12Frame Class", 0&) Case "14" ' For 2010: hwnd = Find Window("PPTFrame Class", 0&) Case "15" ' For 2013: hwnd = Find Window("PPTFrame Class", 0&) Case Else Err.
To get the framerate smooth, i have tried several options, with poor results: Agree with Skip. I am not sure if VBA can do similar API manipulation of DCs as VB itself.Raise Number:=vb Object Error ERR_NO_WINDOW_HANDLE, _ Description:="Unable to get the Power Point Window handle" Exit Property End If If Lock Window Update(hwnd) = 0 Then Err.Raise Number:=vb Object Error ERR_WINDOW_LOCK_FAIL, _ Description:="Unable to set a Power Point window lock" Exit Property End If Else ' Unlock the Window to refresh Lock Window Update (0&) Update Window (hwnd) hwnd = 0 End If End Property 'Sample Usage: Sub Long Processing Sub() ' Lock screen redraw Screen Updating=False ' --- Long time consuming code ' Redraw screen again Screen Updating=True ' Also see below article for another example of usage of the code End Sub It's fairly simple to open a Power Point file (*.ppt) for editing using VBA code however opening a Power Point Show (*.pps) file for editing is altogether another matter. Open method and it defaults to open the file in Slide Show mode. The routine below illustrates a manner of woring around the default behaviour and opening the file for editing.Open("C:\sample.pps", _ With Window:=mso False) 'Open a window now to the presentation for editing p Show.New Window ' Unlock the window to start refreshing again Screen Updating = True Exit Sub Err Handle: If Err.