Office Automation :: PowerPoint: Using Pres.SaveAs In PresentationBeforeSave Event?
May 16, 2011
I have created an addin specifically for Microsoft PowerPoint 2003 that will cature any save attempts made by the end-user. The purpose is it analyse where the file is saved to and to take a copy of the saved file for version control.I have created a module level object mobjPPT which contains my PowerPoint application object and have assigned the PresentationBeforeSave event to my sub 'PowerPointSave'. Everything works up until the point it hits the 'Pres.SaveAs' line and throws the following error:
System.Runtime.InteropServices.COMException (0x80004005): Presentation (unknown member) : Failed.
at Microsoft.Office.Interop.PowerPoint.PresentationClass.SaveAs(String FileName, PpSaveAsFileType FileFormat, MsoTriState EmbedTrueTypeFonts)
at PPTSave.Connect.PowerPointSave(Presentation Pres, Boolean& Cancel)
I have tried calling SaveAs on the mobjPPT object instead but get the same results.Here is the offending item:
Private Sub PowerPointSave(ByVal Pres As Presentation, ByRef Cancel As Boolean)
Dim dlgResult As DialogResult = Nothing
Dim dlgFilter As Microsoft.Office.Core.FileDialogFilters = Nothing
I have a simple form, with a button that invokes some Powerpoint automation (I am using VB 2008; Office 2007 is installed on the machine). Powerpoint starts up properly, the presentation closes, but...Powerpoint stays "up" (does not quit). When my application eventually closes, powerpoint does close, but I would like for it to properly close right after the automation completes.
I have been searching and trying for quite some time now but did not yet find the right way to solve my problem.Here is what I want to do:- open powerpoint with a file (an disable the UI of my app while it is opened)- make some changes to this file- save it with a new name- get notice when Powerpoint is closed (either by my app once the automatic changes are done or if the user quits Powerpoint)- enable UI once Powerpoint is closedThe notice is my problem. Is there an easy way (other than timers that check the process list) to get notice of when my started Powerpoint-Process is closed/quit?
Here's the user environment: Microsoft 2003 Web Server Microsoft Visual Studio.Net 2005 (VB.Net) Microsoft Office PowerPoint 2003 We are attempting to use Interop in a web service to update PowerPoint presentations. It worked great on my laptop, but when we migrated to the server, we encountered issues.Basically, it started taking 10 or more minutes to open up the presentation, which means we usually time out.
I am creating new documents from templates and then saving them as docx files.My understanding is that when I go to my saveas method I should be able to have the wdFormatXMLDocument as one of my fileformat options.However I don't.I have to use the numerical equivalent of 12.I have imported the Word 2007 interop and have all the methods at my fingertips there, but can't seem to find this particular option.
It appears that when one creates an instance of Excel, using CreateObject, (Late binding), the suggested Excel closing function (with GC.collect etc) does not work. I have tried several suggestions, and the only one that works is process.kill method. Do you see any problem in using this? BTW: the reason we are using late binding is that we cannot use Office PIAs....not sure which version of Office would be installed on the client site. We work with O2003, but the client might still be at 2000 or 2002.
I have written an automation addin in Excel with C# (addin.dll). To use the addin, I need to 1. register it using "regasm /codebase c:...addin.dll"2. select in ExcelOptionsAddInsExcel AddinsAutomation the respective addin from the list
I would like to automatize 1) and 2), so that the user just needs to run an exe-file in order to use the addin. 1) should be no problem, but how can one automatize 2)?
Ok basically what I need to do is the following:Read FirstExcelDoc (attached)For every row in that: Retrieve data from sql server db based on info in the Orange columns of FirstExcelDoc Let's say I retrieved data elements A, B, C, D, and E from sql server. Then I need to enter those same data elements A, B, and C in another excel spreadsheet (which has formulas etc) After inputing A, B, and C in that spreadsheet, read a couple of calculated fields and compare those results to data elements D and E retrieved originally from SQL Server DB. Finally, output the results in the Blue columns of the FirstExcelDoc spreadsheet for that row.Loop through and do the same thing for row 2 of the FirstExcelDoc and keep on until you see "END TEST" in the FirstExcelDoc.
I'm looking for a method of doing this efficiently. I have read several articles over the past few days as well as those from Mike R. but just need some direction to get started on this.To start of I'm looking for whether to read the entire FirstExcelDoc spreadsheet or just read the info for first policy number(2nd row) and process it and write out the blue column info for that row and then loop through and come back and read the second policy number (3rd row) etc... Please attach a code snippet for either way of reading the data.
I'm using excel via interop in application.Sometimes users kill application that created excel instance and that results in excel instance sitting in memory without any chance of disposing it.First I tried to tackle this using ROT(running object table) looks like not all instances of excel are registered there.Than I tried to somehow mark excel process after it is started via interop.[code]This works as long as excel is visible but in my case excel window is invisible.All I need is to somehow mark process that started via automation with the parent PID, so that later I can kill it if parent does not exist.
I have successfully automated a PowerPoint Metrics presentation with VB.Net. However, since there were many complicated calculations, it took quite some time to make the 120+ slide presentation - so I recently tried to revamp the application to be multi-threaded.
I've got VS2008 and Office2010, but I don't have Office2007. Therefore, I have the Word14 Object Library but not the Word12 Object Library. Will the code that I create for Office2010 automation also work where clients only have Office2007 or will they have to upgrade their office suites?
I have a VB 2008 Forms application which does Powerpoint automation.I am opening Powerpoint in a minimized window from within my app and am trying to periodically put update messages in a textbox on my main form while the automation is running (it takes a few minutes to complete), but my form window does not want to show these messages until the powerpoint operations are finished.It seems as if I need to force a window refresh or something on my windows form, but I'm unclear how to do that. Below is some code that I'm using that illustrates what I'm trying to do.When I run it, "Step One / Step Two / Step Three" do not show up on my textbox until after the Powerpoint automations are over.[code]
We have a vb program which is run on our server by scheduled task every day. The program opens about 30 excel files, refreshes the data connections, pivot tables and then saves the document in another location.
This may run fine for a couple days but sooner or later the process starts crashing, usually with this error: RPC_E_SERVERFAULT.
My question is, Is it expected that continually opening/closing/refreshing workbooks will inevitably cause the Excel object to crash at some point.
i was wondering if someone could give me the final explanation on what i might be doing wrong here.I spent a lot of time reading around the net and the forum about how to add Threading capabilities to a VB project.
Nos, i've got .NET 4 installed, and i've added the system.tsr and mscorlib.dll files as reference in, say, Excel 2007 (see screenshot).However, when i try to make a thread with anything as basic as "Dim Thread1 As System.Threading.Thread", i get a user-defined type not found error.Indeed, when i use the object browser to see what's in the System file, theres nothing remotely linked to any Threading, and in the mscorlib file, nothing under "Threading" either, just a few Thread related functions, but nothing defining a data type
I've developed shared addin for Microsoft Word. I distribute this addin with my application and using Inno setup for installation. The Inno setup installs my application and then runs "myAddin.msi" file in order to install addin.
how to uninstall this addin programatically?
Right now, in order to uninstall addin, the user has to to it manually through control panel.
I have a commandbar model which automates PowerPoint. I recently faced a strange problem that when PowerPoint is opened through my application, and the data is being loaded through my application to populate the menu.If a user right clicks on PowerPoint I get the error message: Call was rejected by callee powerpoint
How do I resolve this? I'm using Office 2003/2007 and VB.NET for office automation.
how do i use the webbrowser to display the word or excel docs. just like the pdf viewer... i tried the webrowser1.navigate but it didnot work, if it does its opening a new window, im using office 2010..
How do I use the webbrowser to display the word or excel docs. just like the pdf viewer. I tried the webrowser1.navigate but it didnot work, if it does its opening a new window, I am using office 2010.
I've made Add-in for Word 2007 in VS2005.It worked well with Word 2007 and now it works well with Word 2010 32 bit.However it doesn't work with Word 2010 64 bit. The installation is successful, but the ribbon button doesn't show up.
Do you have any experience with add-ins for Office 64 bit?
I'm having an issue where my excel.exe process doesn't close until I close my .net application. I'd like to avoid using Process.Kill() if at all possible.
Private Sub WriteRowsToXls(ByVal rows As DataRowCollection, ByVal xlsPath As String, ByVal showStatus As Boolean, Optional ByVal AddTotals As Boolean = True) Dim xlsApp As New Microsoft.Office.Interop.Excel.Application
This method references a couple of other methods I use for repeated formatting tasks, I'll include those methods below. (I added the FinalReleaseComObject into the other methods after reading Mike's thread but the issue persists)
Code: Private Sub SetRangeValidation(ByVal rng As Range) With rng.Validation .Delete()
Method SetRangeAllBorders does about the same as these other methods but my post is too long to add it. The only other things not shown in these code snippets are a few string variable that are defined in the class, studentWS, studentsWSPW, paymentsWS and paymentsWSPW My App creates an instance of the class, loads some data, runs the method above, and then sets the class to nothing. I'm using .NET 3.5 automating Excel 10
This might seem a ridiculous question but I just want to make 100% sure before I start committing any funds to software purchases. Can I use VB2008to develop automation routines to control Office2010 applications or must I absolutely use VB2010 to do so?I ask this because I installed an Office 2010 pro on my station which already has VB2008 and I do not have any Word14 reference in the COM section of the list of references...
I have used VB.NET and Microsoft Offices Interop to create an application that will run on a server and will print files for different users.My problem is that I need to find a way to impersonate different users so that when MS Word opens and prints, the resulting print job is recorded under that user. I found this link that lets you run .net code as a different user - unfortunately it doesn't work with this code. The username recorded is still the user that is logged on the server.Code Removed by moderator. Any ideas how I can make the Office app I'm automating run under a different user to the .net program that is calling it?
I would like to create Shared add-in that works with Word, Excel, Outlook and Power Point. I've found nice article that provides step by step instruction for creating shared add-in for Word: [URL] I've followed instructions and it worked. However, I am looking for a way to create one add-in that works with Word, Excel, Outlook and Power Point, not only Word. I didn't find any reference on the WEB.
How do I open/view Office documents (Word, Excel, PowerPoint) in a VB.NET Form? remember to mark the replies as answers if they and unmark them if they provide. Welcome to the All-In-One Code Framework! If you have any feedback,
Trying to Automate the VBA code from C#, the existing VBA code is a legacy code which has hundreds of nested calls within.Automate these VBA routines from C# and during the Automation there could be some COM objects which needs to transacted between VBA and C#.COM Objects currently have a Interoperability wrappers to C# and they are being developed in VB and C++?
I've been researching a problem and am so overloaded I'm really lost now. I have to produce an insane amount of reports at work, different day, times.. You get the point. What I'd like to do is create an application where I can:
The windows application would be running all the time .At specific days and times, the application would sent an MS Excell file in Outlook as an attachment
All automatically. If I can get this working, I plan on adding a GUI to the application allowing many reports, at times and days I can set on the screen.
I'm not even sure if this is even possiable.If my application is too hard for a 5th grader to run, I've made too complicated"
I have a excel VBA program that extract data from bloomberg (when run on bloomberg enabled workstation). Currently thinking about converting the application from VBA to c#.net application that i can have a better control of the application.
I need some advice on the license issue of creating a intranet web service that draw data from Bloomberg (web service setup on bloomberg enable station).
Another problem i face is it very hard to find example or articles regarding this issue.where i could have a good grab on dealing with bloomberg API?
I have been going around and around about this and just can't seem to find the answer. I have an Access 2007 DB with 3 Tables I pull data from the first (STUDLIST) table to my form, I then pull data from the second(EQUIPINV) Table
complete my form, I now want to take my form data and create a new row in my third table(SignedOutEquipment)....(Yes I know that is duplicating data but overall it rally is not, there are reasons to do it this way) but this is where I am having my problem, My code runs with no errors and tells me it added a record but when I check my access DB there is no new record.
I am using visual Studio 2008 Express and access 2007[CODE...]