Accessing VS through automation


I access devenv.exe through EnvDTE.dll from my C# code.
I make devenv window active and then visible.
Before closing I remove reference using Marshal.ReleaseComObject().
My progam finishes, VS GUI is still active.
But when I close it there is still process of created devenv.exe running.

Do you know how to clean devenv.exe when its gui is closed.


Szymon Madejczyk

Szymon Madejczyk
6/30/2003, 12:57:30 PM

0 replies


Word automation 'SaveAs'
0 replies , 7/27/2010, 5:30:54 PM
I just want to save the word file as a different file name, using the SaveAs method in Document, I am using C++. _Document doc; ... COleVariant saveasFile("myfile.doc"); COleVariant saveasFormat((short)wdFormatDocument); ... doc.SaveAs(&saveasFile, &saveasFormat, ...); I am not familiar what I should initialize for the rest of parameters, I always get some run time exception. Does any one have sample code? TIA

Office OLE Automation Interface Error
0 replies , 3/10/2005, 1:45:03 AM
I am trying to resolve a problem that involves LexisNexis Time Matters 6 and intergration with Outlook 2003 SBE SP1. Time Matters does not seem to be able to recognize which version of Outlook is installed (for sync.), returning a No OLE automation interface found error. LexisNexis support states reinstalling Office is the only thing they can recommend, which means reinstalling Office on 15 machines. The client machines are all new (less than 2 months old) Dell machines with XP Pro SP2, Office 2003 SBE SP1 preinstalled. So far I've had no other issues with these computers. Thanks for any ideas.

I receive an Email containing 2-3 daily takings reports for bookkeeping 2-3 times per week. I wish to automate the "save as" process to include the date, because at the moment ALL reports inward have the same name. Is there a small macro (or other process) I could insert into her "template" to automate this process and de-stress both of us?

Project Server 2003 - automate approval process?
1 replies , 8/18/2005, 8:45:03 PM
I'm looking into the cost of licensing Project for our IT department and am getting dizzy ;). The only way to add tasks to a project when using Project Server is through Project Pro - over kill in the extreme for our needs. Although Project Web Access allows users to create a task, it must be approved through Project Pro. I'm wondering if there's a way to automate this approval process so that tasks (or even projects) created by specific users would be added without requiring human intervention. Thanks in advance, Mike L

how can I automate chart axes
4 replies , 7/6/2008, 5:46:00 PM
I'm generating chi-square charts that are dependent of the degrees of freedom and probability, hence each chart has a different shape. How can I automate the scales to be dependent on individual chi-squared data series. For example, if a series has DoF of 45 and I'm looking for a probability of 0.1, then the x-axis has, say, a Min of 15 and a Max of 80, and the Y axix has a Min of 0 and a Max of 0.08. I'd rather not have to resort to VBA Thanks

3 replies , 3/1/2007, 4:02:33 PM
I am looking for some hints/links to automate a tedious task: Inserting a hyperlink into a cell that references to a specific document/picture. This document is contained in a dedicated folder. However, the particular document must be identified for each insertion by personal search. The insertion of the link must not open the particular application (Word/iPhoto/Photoshop) which created the document. I am have been able to create a (trivially simple) Macro that can insert a specific document but only the one I specify within the Macro. Every comment is appreciated. Rudolf

Office automation in different excel
1 replies , 5/17/2007, 5:12:00 AM
hi like to ask if office automation code in C# for excel 2003 will work with excel office 2007 ?? Thank you

Automating My Name with Page Numbers in a Word Doc.
7 replies , 2/23/2010, 3:09:30 AM
Version: 2008 Operating System: Mac OS X 10.6 (Snow Leopard) Processor: Intel Hello, I know how to automate page numbers for a whole document, but what I want is to automate my name and page number in the bottom corner of a document. For example, &quot;Smith p.1., Smith p.2., Smith p.3.....&quot; without having to type my name and page number in individually. It needs to appear just like that, with p. for page. <br><br>Thank You!

Automating data movement
0 replies , 7/19/2007, 5:28:04 PM
I've used a worksheet to create a standard form for data entry and operation selection. Column A contains the data headings, column B is user input (text & numberical data), column C contains the calculations for the operations selected in column B. I want to trasnfer the information from specific rows in columns B & C into the next available row in the corresponding column in worksheet2. Worksheet2 has the same exact headings as the first worksheet and is used to generate a Gantt chart for scheduling purposes. -- dhunter43 The Performance Advantage, LLC

Automated diagram creation
0 replies , 5/6/2009, 2:02:01 PM
I have a situation where we will be creating complex network diagrams. I have data in Excel worksheets now. Can I use that data to create the diagram? If so, where do I find details on how to do that, including necessary columns etc?

Powerpoint Automation in MFC
5 replies , 6/29/2008, 10:52:00 AM
Tutorial Link: I'm trying to follow this tutorial to create an automation controller to manipulate the Microsoft PowerPoint object model using MFC, but I'm getting lots of errors like: error C2146: syntax error : missing ';' before identifier 'GetRGB' warning C4183: 'GetRGB': missing return type; assumed to be a member function returning 'int' error C2061: syntax error : identifier 'MsoRGBType' Can anyone pls. help me with this? Thanks, Anne

Automating input to a new worksheet
0 replies , 5/8/2007, 4:37:26 PM
I entering information - with a one to many relationship so to speak. ie one state has 6 to 30 behaviors etc. The problem is that the many cell becomes to bulky and large when looking at the information. So I created another worksheet. Now what I want is to link the behavior cell in one worksheet to the data of the behavior in cell of the other worksheet with the ability to dynamicaly manipulate ( ie add,delete,move etc) and not loose the link between the states their behaviors. Any Ideas? I am sure that a database more applicable for this, but I do not have the time or experience etc..

1 replies , 6/15/2005, 6:54:02 AM
Hi, Please i need a way around this stuff quickly. I deal with large excel files and usually have to comapare an electronic copy (current) and a hard copy (downloaded from a server a week earlier) and make some remarks on the new one. I could actually lay my hands on the electronic copy of the older list. The prob now is that how do i automate the process and let the program (excel or any other u might suggest) note the missing rows (numbers) in the newer and give a PASS remark on the newer one? I have tried all the tricks i know about writing/ recording excel macros and vba to no avail. Please help out! Any suggestion might be useful. Thanks. -- crowngab ------------------------------------------------------------------------ crowngab's Profile: View this thread:

Automated filter? Automated replace?
2 replies , 1/12/2005, 7:59:03 AM
I'm cleaning up large datafeeds . . . Can a filter/macro be made to delete rows containing any of a list of words? Can one also replace a list of spaces and charactors in columns?

.net automation crashes Word
0 replies , 8/4/2003, 1:45:19 PM
I have an Winform app which I upgraded from vs.net2002 to 2003. I have one form which captures the on closing event in a word app and saves the document to a database. It worked fine before I upgraded the application. Now it still saves the document to the database, but word then crashes. Are there new interop files for vs.net2003? Haim Katz Private Sub myapp_ApplicationEvents2_Event_DocumentBeforeSave(ByVal Doc As Microsoft.Office.Interop.Word.Document, ByRef SaveAsUI As Boolean, ByRef Cancel As Boolean) Handles myapp.ApplicationEvents2_Event_DocumentBeforeSave Select Case saveflag Case doctype.templateOld Dim intresp As DialogResult intresp = MessageBox.Show("Do you want to save this document as a template?", "Warning", MessageBoxButtons.YesNo) If intresp = DialogResult.Yes Then saveflag = 0 Dim mydoc as Word.documentClass = me.g_myapp.activedocument Dim docname as string = mydoc.fullname mydoc.close() // save the file to a database. It works in both ..net2002 and .net2003 saveflag = 1 Cancel = True // Word then crashes and asks me if it wants to recover the document End If End Select End Sub

Haim Katz
1 replies , 5/2/2007, 7:02:57 PM
Anybody know of any Automator actions for Entourage?

James Devlin
So far I have seen all kinds of people that are dissapointed that Microsoft removed this functionality to Visio. Bring it back.. The 3rd Party vendors that are recommended on the Visio web site are a waste of money and not work the effort! ---------------- This post is a suggestion for Microsoft, and Microsoft responds to the suggestions with the most votes. To vote for this suggestion, click the "I Agree" button in the message pane. If you do not see the button, follow this link to open the suggestion in the Microsoft Web-based Newsreader and then click "I Agree" in the message pane.

Automate Outlook 2003
1 replies , 7/7/2006, 6:15:02 AM
Hi I need Outlook to automatically add all info on the subject line to a access database, where the info is separated by the : symbol. Each field in between the : goes into a field in access. It has to do this every time I sent a mail. The first field must determine to what table in access the info must go to. For instance, if the company is called CompA then it must go in the CompA table in access, when it's CompB then it goes to CompB table etc. At the end of the week, Outlook must retrieve each table individualy, create a spreadsheet with the info on it and email it to the respective client that it belongs to. I don't know if this is possible with VBA or must I use VB.NET? We're running on a company network which is very strictly controlled. No programs can be installed on the pc's by the users. So I think scripts is the best solution. Thanks

Problem after automation
1 replies , 9/20/2007, 2:11:55 PM
Hi All! I have done word automation successfully. But the problem is, after completion of writing and saving the automated document, when i open it in ms-word and add new lines....and apply some formatting like font color, size, bold etc. it applies to all the document automatically....and even if apply bulletting ....whole document get belletted. Any help will be higly obliged. Regards, Zia

1 replies , 9/22/2005, 5:18:04 PM
Hi there; I am copying specific cells from a file (actuallu use the address approach, like aa!c12) to another file. The cells address in source file are always the same, but in target file changes each time to lower rows than previous one. I have 100 source files at least, how to automate this, instead of clicking at each cell each time between source and target files. Thanks for your help.

Hello All - I am using VB.NET 2003 to automate Access XP. Specifically, I am trying to print out an Access report. The report I want to print is based on a parameterized query: PARAMETERS [the code] Long; SELECT * FROM [Absence Codes] WHERE AbsenceCode = [the code]; I found an article in the MS KB entitled "HOW TO: Automate Microsoft Access From Visual Basic .NET" [1] which provided an excellent start. When I click the "Go!" button, Access presents me with a parameter input box for "[the code]" and everything works as expected. However, I don't want any parameter input boxes popping up; I want to provide the parameter programmatically, presumably in my "DoCmd.OpenReport" call. This should be a piece of cake, but I can't seem to get it. Here's my OpenReport [2] call: oAccess.DoCmd.OpenReport(sReport, , , "[the code] = 1") The parameter input box still pops up. I don't get it. I've tried every variation I can dream up. Can anyone please provide some guidance here? Thanks, Stuart Laughlin [1];EN-US;Q317113&#2 [2] The "OpenReport" method accepts the following arguments; all but the first are optional: ReportName View FilterName WhereCondition WindowMode OpenArgs

Advice on how to automate
0 replies , 3/15/2006, 7:05:05 PM
Hello, I have a large organized 'master' workbook that contains certain pricing information on items at various breaking points (based on quantity). I also have a large collection of individual workbooks for each part with detailed information on pricing at specified breaks. Everytime the master workbook is updated, I would have to manually go through and update each individual workbook. Due to the sheer number of them, I am thankful it doesn't get updated terribly often! I was looking to automate the task of updating. I've gone through a few methods. Firstly I considered using pure excel linking. Simply have the cell on the individual worksheet reference the master worksheet at the right spot. This could take a long time, and also if anything gets moved around on the master worksheet, all the work needs to be done again. Then I considered importing into Access and trying to use a report output. This seemed somewhat possible except for two things a) I couldn't dump into an existing file and the design view for reports didn't seem to be the best thing to work with. b) the IT manager wants everything eventually moved to SQL So after more searching I discover an actual use for Excel's 'Get External Data' function. You can use it to query another workbook or a SQL table! I am looking for advice as to where to go from here. My master sheet is organized like so: A B C D E F G Part Start End Price Start End Price A123 1 3999 0.508 4000 7999 0.427 A124 1 3999 0.508 4000 7999 0.427 .... A225 1 3999 0.518 4000 7999 0.429 When I start working with MS Query, it changes the column names to Start, End, Price, Start1, End1, Price1, Start2, End2, Price2, etc. My individual sheet is organized like so: A B C Parts 2500 5000 A123 to A224 0.508 0.427 A225 to A333 0.518 0.429 a) I understand how to get it to filter for the name, is there a way to have MS Query check whether 5000 (C1) is in between Start, End, if not, check Start1, End1, if not, check Start2, End2, and if it finds a match, it takes the price from Price(#) and outputs it? b) At the moment, I am using 'Get External Data' to reference the master workbook, I do not believe the process would be terribly different if I were to move the master workbook to a SQL table. Which one would be more advisable to use? Or is it essentially one and the same? Thanks for your time and consideration!

Waterfall Charts - Automation
1 replies , 3/24/2006, 4:47:02 PM
I have created an excel sheet that calculates the data for creating a waterfall type chart which is a stacked bar chart in graph with the bottom stack hidden. (Using IF statements, ABS formulas) Is there a way to make these type charts automatic by taking my calculated data and somehow have Excel generate the charts from this data. Maybe a menu driven way by entering this data with the variables for each different chart. Any suggestions would be appreciated. Excel 2002, Windows 2000 THX Fritz78

2 replies , 11/4/2004, 5:31:10 AM
Hi, I have 8 Excel Spreadsheets that gather data from an External Data Source. I'd like to somehow schedule these files to open, refresh the data, and then close some stage at night so the data is fresh for when the user gets in. (it takes about 5 minutes to update each workbook). Does anyone have any ideas? Thanks Marek

PowerPoint automation "Run-time error '0'"
1 replies , 12/9/2009, 4:49:43 AM
Hi All, While doing PowerPoint automation in my VC++ code the function "InsertFromFile" fails and a "Run-time error '0'" dialog comes. Could somebody please tell what might be causing this error. Since there is no error code (its 0) I do not know how to proceed. Since an error dialog is shown by PowerPoint saying "Run-time error '0'" all of the automation statements after the call "InsertFromFile" fails because PowerPoint do not responds and the functions (e.g. Save ()) times out and throws exception. Is there any way to dismiss the dialog "Run-time error '0'" automatically so that the latter statements succeeds. The same "Run-time error '0'" comes when I try to do the same thing in VBA script (as mentioned in the code below). But surprisingly the error does not come it I open the presentation with a window and make PwoerPoint visible. Thanks Rahul VBA equivalant of my VC++ source code (This also causes error) Sub Macro1() Set App = CreateObject("PowerPoint.Application") Set presSet = App.Presentations Set finalPres = presSet.Open("C:\Work\Bugs\test.ppt", MsoTriState.msoFalse, MsoTriState.msoFalse, MsoTriState.msoFalse) Set dstSlides = finalPres.Slides dstSlides.InsertFromFile "C:\Work\Bugs\test.1.ppt", 2 finalPres.Save End Sub

Automation timeout?
0 replies , 9/13/2004, 2:45:45 AM
I have an application which update Excel spreadsheet, for Excel 97/2000, it's fine, but for Excel 2002/2003, looks like the connection fails after about 2 minutes, I got error message like 'the object invoked has disconnected from its clients". is it a bug of Excel 2002/2003? any workaround for this problem? Thanks Simon

simpleMod Wrote: > your criteria doesnt make any sense... > > is each line one a criteria? > > like this > -Monday 7:00:00 3.137263<=Y<=3.138149- means day = monday AND time = > AM AND (3.137263<=Y<=3.138149) > > and a . (dot) means any day or time > > -21:00:00 101.692597<=X<=101.693463- means any day > > Please clarify. Oops, i am sorry for my bad presentation of my question. Well basically it should look like this: For all data that meet "Day = Monday" AND "Time BETWEEN 7:00:00 an 7:05:00" AND "3.137263<=Y<=3.138149", i need to get the average an standard deviation of the SPEED. NEXT, by holding the "Day" AND "Time" criteria, but varying th "segment" criteria. I need the average and standard deviation of SPEE for all data points that fall within each "segment" criteria. This process continue until the last "segment" criteria is scanned THEN, i will have to Remain the "Day" but modify the "Time" criteria t "Time BETWEEN 7:05:01 and 7:10:00" AND starting to varying the "segment criteria from the first segment to last segment and so on. Which means, the combination should be : DAY *TIME BETWEEN*SEGMENT if i have 7 days, 169 time intervals and 127 segments. I'll nee 7*169*127 sets of data. I hope this clarify my question a bit more. Thanks for replying me +------------------------------------------------------------------- |Filename: untitled.gif |Download: +------------------------------------------------------------------- -- changeabl ----------------------------------------------------------------------- changeable's Profile: View this thread:

Excel automation and Shared workbooks
2 replies , 12/3/2003, 4:35:30 PM
Please forgive the multi-group posting! I was not sure which group would be most appropriate for this question! I have writen a number of VBScript functions that exploit the Excel automation interface. I use these VBScript functions to open an Excel workbook, read/write data, and close the workbook. If I access this workbook in a sequential fashion I do not have any problems but if I try to access the same workbook from two or more machines then one of the machines eventually opens the workbook in read-only mode and fails to perform its write operation. That is, it prompts me to save the file under a different name or location because the source file was in read-only mode. I thought that if I configured the workbook as a shared workbook that I would be able to have multiple concurrent connections to the same workbook and that each connection would be allowed write access but as I stated above sometimes one of the machines ends up with a read-only connection. Are there any known limitations with the automation interface and the shared workbook setting? Below are two of the functions that I have writen. The "field name" is the value found in the first row of the field. Any data writen to the workbook is offset by one row to account for the field header (field name). At one point I attempted to check for the read-only state inside the SetCellByFieldName function and close the file and re-open it until I got write access but I was unable to get this to work consistently. If anyone can give me some direction I would very much appreciate the help! Matthew ' ############################################################################ #################### ' GetCellByFieldName will return a cells value according to the specified field name and row. ' If the field name is not found the return value will be "False". ' sExcelWorkbook - Enter file name including directory path ' sWorksheet - Enter the name of the worksheet ' sFieldName - Enter the cell column reference ' sCellRow - Enter the cell row reference ' Ex. GetCellByFieldName "C:\Book1.xls", "Sheet1", "ROHMat#", 1 ' ############################################################################ #################### Public Function GetCellByFieldName(ByVal sExcelWorkbook, ByVal sWorksheet, ByVal sFieldName, ByVal sCellRow) Dim objExcel, objWorkbook, sCellCol If Not(Len(sExcelWorkbook) = 0 Or Len(sWorksheet) = 0 Or Len(sFieldName) = 0 Or Len(sCellRow) = 0) Then ' Increment sCellRow on record to offset for the field header sCellRow = sCellRow + 1 Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open(sExcelWorkbook,,True) If Not (objWorkbook.ReadOnly) Then NetSend "322YM21", "GetCellByFieldName : Excel file NOT opened in Read-Only mode" End If For sCellCol = 1 To 256 If (Eval(objWorkbook.Worksheets(sWorksheet).Cells(1,sCellCol).Value = sFieldName)) Then GetCellByFieldName = objWorkbook.Worksheets(sWorksheet).Cells(sCellRow,sCellCol).Value Exit For End If If sCellCol = 256 Then If (Eval(objWorkbook.Worksheets(sWorksheet).Cells(1,sCellCol).Value <> sFieldName)) Then GetCellByFieldName = False End If End If Next objWorkbook.Close False objExcel.Quit Set objWorkbook = Nothing Set objExcel = Nothing Else GetCellByFieldName = False End If End Function ' ############################################################################ #################### ' SetCellByFieldName will set a cells value according to the specified field name and row. ' If the field name is not found the return value will be "False". ' sExcelWorkbook - Enter file name including directory path ' sWorksheet - Enter the name of the worksheet ' sFieldName - Enter the cell column reference ' sCellRow - Enter the cell row reference ' sCellValue - Enter the new value ' Ex. SetCellByFieldName "C:\Book1.xls", "Sheet1", "ROHMat#", 1, "54687" ' ' NOTE: If the sCellValue argument's value contains a leading zero it will be reformatted to ' resemble an Excel formula. Ex. 00000543867 will be changed to ="00000543867" ' ############################################################################ #################### Public Function SetCellByFieldName(ByVal sExcelWorkbook, ByVal sWorksheet, ByVal sFieldName, ByVal sCellRow, ByVal sCellValue) Dim objExcel, objWorkbook, sCellCol If Not(Len(sExcelWorkbook) = 0 Or Len(sWorksheet) = 0 Or Len(sFieldName) = 0 Or Len(sCellRow) = 0) Then ' Increment sCellRow on record to offset for the field header sCellRow = sCellRow + 1 Set objExcel = CreateObject("Excel.Application") Set objWorkbook = objExcel.Workbooks.Open(sExcelWorkbook,,False) If (objWorkbook.ReadOnly) Then NetSend "322YM21", "SetCellByFieldName : Excel file opened in Read-Only mode" End If For sCellCol = 1 To 256 If (Eval(objWorkbook.Worksheets(sWorksheet).Cells(1,sCellCol).Value = sFieldName)) Then ' If sCellValue has leading zeros reformat the data to resemble an Excel formula If (Eval(CStr(Left(sCellValue, 1)) = "0"))Then objWorkbook.Worksheets(sWorksheet).Cells(sCellRow,sCellCol).Value = "="""&sCellValue&"""" Else objWorkbook.Worksheets(sWorksheet).Cells(sCellRow,sCellCol).Value = sCellValue End If objWorkbook.Close True objExcel.Quit Set objWorkbook = Nothing Set objExcel = Nothing If (CStr(GetCellByRowCol(sExcelWorkbook, sWorksheet, sCellRow - 1, sCellCol)) = CStr(sCellValue)) Then SetCellByFieldName = True Else SetCellByFieldName = False End If Exit For ElseIf (sCellCol = 256 And Eval(objWorkbook.Worksheets(sWorksheet).Cells(1,sCellCol).Value <> sFieldName)) Then objWorkbook.Close False objExcel.Quit Set objWorkbook = Nothing Set objExcel = Nothing SetCellByFieldName = False End If Next Else SetCellByFieldName = False End If End Function

Matthew L. Butcher
1 replies , 3/3/2008, 7:10:21 PM
Office 2008 for Mac says all its parts support Automator (in OS10.4.x) but I can;t make it work - Auto doesn't acknowledge Office at all. Any help gratefully received!

Word OLE automation..!!
2 replies , 1/3/2004, 8:50:22 AM
Hi ... I am using MS Word OLE object for developing one software. But in some case Word shows some warnings like 'MS Word finished searching...' etc etc.... Is there any function available to hide the messages or warnings ??? Thanx in advance... Subash

MS Access automation using C#
1 replies , 3/17/2006, 3:20:11 AM
Hi, I'm trying to automate an Access form using C#, what I'm attempting to do is pass information from a C# Windows Application to Access but the problem I am having is that once the combo boxes are populated in my Access form a button must be clicked before other parts of the form are populated, how can I trigger the button's click event from C#? Thanks Mike

Automation Error
0 replies , 5/3/2004, 3:10:40 AM
The code below is in xl VBA. I programatically open an Access database and am attempting to insert a line of code in a specified module. I get the error message 'Automation error. <vbcrlf> The RPC server is unavailable' sometimes when either of the lines (below) followed by asterisks is executed. Anyone here have any idea what causes this error? Private Sub cmdInsert_Click() Dim LineDef As LineParam, TestSpec As ProcSpecs Dim ctl As Control Dim InsertWhere$, CurrentProcedure$ Dim BreaksCount% InsertWhere = IIf(optBefore, "before", "After") If MsgBox("Are you sure you want to insert the text above " & InsertWhere & _ " the selected line?", vbQuestion + vbYesNo + vbDefaultButton2, _ "Line Deletion Confirmation") = vbYes Then LineDef = GetLineParam(lstBodyLines) TestSpec = Specs(cboProcs.ListIndex + 1) Set ctl = ActiveControl txtEdLine.SetFocus BreaksCount = txtEdLine.LineCount ctl.SetFocus If optBefore Then mdl.InsertLines LineDef.Start, Nz(txtEdLine, vbCrLf) '************************ Else mdl.InsertLines LineDef.End + 1, Nz(txtEdLine, vbCrLf) '*********************** End If ListProcedureLines TestSpec.Start, TestSpec.EndLine + BreaksCount End If End Sub

Word automation with VB6
2 replies , 11/25/2003, 9:22:04 PM
I am using the following code in a VB6 project to provide a report. How can I eliminate the message box that pops up stating "Word is currently printing. Quitting Word will cancel all pending print jobs. Do you want to quit Word?" Thanks Harlan Dim moWordApp As Word.application Dim moWordDoc As Word.document Set moWordApp = New Word.application moWordApp.Visible = False With moWordApp Set moWordDoc = moWordApp.Documents.Add("MLP-CGP-150") With moWordDoc .FormFields("text1").Result = ID .FormFields("text2").Result = Range End With moWordDoc.PrintOut moWordDoc.Close (False) ..Quit End With Set moWordDoc = Nothing Set moWordApp = Nothing

Some question about the compatibly of the office interop framework: 1. Is it possible to use the automation program on a computer without office? For example, to read a word document into a string on a C# program, without having office? If the answer is no, is their a way around it? 2. If I'm using the 11.0 object library of the interop, how does my application interact with lower-version office such as 2000?