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.Raise Number:=vb Object Error ERR_VERSION_NOT_SUPPORTED, _ Description:="Newer version." Exit Property End Select If hwnd = 0 Then Err.Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.
Text will completely change from report to report, and might or might not be printed between each table (based on things the user tells my program). If you think the template might be worth developing/learning for this, given the variability, then maybe I'll try it.Excel & Word have the Screen Updating method thru which a developer can lock the main window from unnecessarily redrawing itself whilst the macro is being executed. If left alone, redrawing is not only ugly on the eyes it also takes more time for the macro to reach completion.Hence I created this generic wrapper to lock the window updates.You can 'hop' from cell to cell using the For Each construct on the Cells collection in a Row or in a Table. If you do use a template, you can keep formatted boilerplate text ready for use as Autotext, but of course that won't help much if your bottleneck is table cell filling. Although this might not speed up the actual run time (in fact, it could make it slower), it might give the program the appearance of being faster, especially if your program requires a lot of repainting and updating.Certainly, it gives control back to the user while you wait for the code to finish. Visible = True Will make a new instance of word, make a new doc, add text, and then show it only when finished.NET app across the Word instance, and there's a way to group the commands? The snippet demonstrates the direct document working method. those five pages should be done in sub-second times. It might be slow because you are referencing your table with absolute coordinates. Move End(wd Cell, 1) to hop to the next relative cell instead.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.It's equivalent to hitting tab while in the document. Once I was writing a macro that did a lot of selection.writeline() calls, and it would occasionally slow to a crawl (one or two paragraphs per second), for a little while, for no real reason, and then sporadically speed back up to full speed (several pages a second).Apparantly alt tabbing back and forth between the form I had open, and the word doc, made the speedup happen sooner.