GetObject Function in VB 6 is throwing the Error number 429 in Windows 7 - excel

I am exporting the data from my application to excel. For this i am checking whether any excel windows are open and then creating the excel application object. Like as mentioned below.
lHwnd = FindWindow("XLMain", vbNullString)
If lHwnd = 0 Then
\\create new application
Set GetExcelApp = GetObject("", "Excel.Application")
Else
\\get existing application
Set GetExcelApp = GetObject(, "Excel.Application")
End If
But if any excel windows are already open then this code is throwing the error 429.In Windows Xp this code is working fine for all scenarios but in Windows 7 its throwing the Error 429 while running the exe.
How can i solve this. Please advice..

Error 429 - ActiveX component can't create object means that the Excel.Application object is not registered on your Windows 7 machines. This could be because Excel is not installed, or improperly installed. I would go to the Control Panel=>Programs and Features, select Microsoft Excel xx.0 or Office xx.0 and select Change. Select the Repair option.

Related

Task Scheduler failed to run the Excel VBA Macro

I created an Excel VBA that check for data in the cells and send email with WorkBook_Open().
Option Explicit
Private Sub Workbook_Open()
'Declaring variables
Dim notifyEmailApplication As Object
Dim notifyEmailContent As Object
Dim triggerEmailApplication As Object
Dim triggerEmailContent As Object
'Create email object
Set notifyEmailApplication = CreateObject("Outlook.Application")
Set notifyEmailContent = notifyEmailApplication.CreateItem(0)
Set triggerEmailApplication = CreateObject("Outlook.Application")
Set triggerEmailContent = triggerEmailApplication.CreateItem(0)
...
I then created a VBScript to run the Excel file.
Call ExcelMacro
Sub ExcelMacro()
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True
xlApp.DisplayAlerts = False
Set xlBook = xlApp.Workbooks.Open("....\Email Automation.xlsm", 0, False)
xlBook.Close
Set xlBook = Nothing
xlApp.Quit
Set xlApp = Nothing
End Sub
I also created a cmd file to run the VBScript on cscript.exe
cscript.exe "....\vbscript.vbs"
exit
Whenever I trigger the cmd file manually (double clicking it), the Excel Macro runs perfectly and successfully send email to the designated person.
But when I use Task Scheduler to run the cmd file, the Excel Macro does not run successfully and this line was highlighted.
Set notifyEmailApplication = CreateObject("Outlook.Application")
Notes: I already viewed a lot of forums and didn't find a fix:
In 'dcomcnfg' I already set Outlook Message Attachment to Interactive User
I tried changing Dim notifyEmailApplication As Object to Dim notifyEmailApplication As Outlook.Application, same line is highlighted
I already added Outlook Object Library as reference in Excel VBA
But when I use Task Scheduler to run the cmd file, the Excel Macro does not run successfully
Microsoft does not currently recommend, and does not support, Automation of Microsoft Office applications from any unattended, non-interactive client application or component (including ASP, ASP.NET, DCOM, and NT Services), because Office may exhibit unstable behavior and/or deadlock when Office is run in this environment.
If you are building a solution that runs in a server-side context, you should try to use components that have been made safe for unattended execution. Or, you should try to find alternatives that allow at least part of the code to run client-side. If you use an Office application from a server-side solution, the application will lack many of the necessary capabilities to run successfully. Additionally, you will be taking risks with the stability of your overall solution.
Read more about that in the Considerations for server-side Automation of Office article.
If you deal with open XML documents you may consider using the Open XML SDK instead, see Welcome to the Open XML SDK 2.5 for Office for more information. Also take a look at any third-party components designed for the server-side execution (they don't require Office installed on the system).
I haven't touched this topic for many years, but as I remember, from a long time ago, the Task Scheduler allows, or requires, you to enter your Windows password and if the password is incorrect it won't notify you of the error, so it seems like it's working, but with the incorrect password, it won't work. Can you double-check that your Windows password is entered correctly?

Weird issue when trying to open Excel Application from VBScript especially when the script is not running with elevated access/privileges

As I mentioned in the Q-title, I have a VBScript which I am sure was working fine in Windows 10 with Microsoft® Excel® LTSC MSO (Version 2205 Build 16.0.15225.20278) 64-bit Excel version and once I made sure that ClickToRunSvc service was running, and then when I ran this VBScript(without any elevation) it did open any Excel secured sheet with password, so that I didn't have to enter password everytime I wanted to open the sheet(I know not very secure, but this is my system behind firewall, so not much worried about it there).:
Sub OpenChosenLockedSheet(ChosenFile)
AdminElevate
Set objExcel = CreateObject("Excel.Application")
objExcel.SendKeys "% x" : objExcel.Visible = True : objExcel.SendKeys "% x"
CreateObject("Wscript.Shell").AppActivate GetObject(, "Excel.Application").Caption
Set objWorkbook = objExcel.Workbooks.Open(ChosenFile, , , ,"<password>")
Set objExcel = Nothing : Set objWorkbook = Nothing
End Sub
But now after fully upgrading the OS to Windows 11, this same above script, running with same Office Excel version, doesn't open the Excel.Application at all and throws the below(also very infamous) error, unless I self-elevate the above script(that's why AdminElevate is uncommented) and open the secured sheet:
Error: ActiveX component can't create object: 'Excel.Application'
Code: 800A01AD
So my query: Is this part of bigger change Microsoft made when it rolled out Windows 11 and I missed or there needs to be some extra coding or quick-fix done to make this script work without admin-elevation ? Anyone feel free to help out.

workbooks.add fails when vbs-script is called from Task Scheduler

I have some code in VBscript that creates an excel object and adds a workbook to it
Dim oExcel, oWB
Set oExcel = CreateObject("excel.application")
Set oWB = oExcel.Workbooks.Add()
When I run this myself (using VbsEdit or cscript), it has no issues and does the job.
When I make an entry in the Windows 10 Task-Scheduler (or Server 2019 too), run it with setting 'even if the user is offline', it fails with errorcode -2147023170. When I say the user MUST be online (useless, but I tried it anyway) then I get the error 1004 - Unknown runtime error.
I can't figure out what causes this. I presume it's a Office 365 issue, because on an older system (windows server 2012 R2 with office 2016) it runs just fine from the task scheduler.
The account it runs under is administrator, the task runs with the highest priority. The Vbs is not called directly, but using a bat-file with logging. Running a vbs-script directly from the task scheduler seems to get stuck at "running" indefinately :(
Who knows how to fix this ?
Thanks,
Paul
How about removing the brackets at the end of Workbooks.Add?
Set oWB = oExcel.Workbooks.Add

Opening Word from Excel using VBA – Several errors

I am currently trying to open Microsoft Word from Microsoft Excel using VBA. I found these resources online:
Official Microsoft Tutorial
Microsoft Forum
Based on them, I came up with the following code:
Code 1
Dim wordApp As Word.Application
Set wordApp = CreateObject("Word.Application")
Running the code with Word already open
Excel stops responding.
Running the code with Word closed
Word opens, but Excel gives me the error Out of memory or Automation error and wordApp is not defined.
Code 2
Dim wordApp As Word.Application
Set wordApp = GetObject(,"Word.Application")
Running the code with Word already open
Excel throws the error Out of memory and wordApp is not defined.
Running the code with Word closed
Excel throws the error ActiveX component can't create object or return reference to this object and wordApp is not defined.
System information
OS: macOS Mojave (10.14.6)
Excel and Word Version: 16.36
References in Excel:
Visual Basic For Applications, Microsoft Excel 16.0 Object Library, Microsoft Forms 2.0 Object Library, Microsoft Office 16.0 Object Library, Microsoft Word 16.0 Object Library, OLE Automation
Conclusion
These errors are quite confusing and I could not fix them by reading Microsoft's error pages. For instance, I continuously get the error Out of memory (see above), although I have around 10 GB of free RAM space. How can I get this to work both on my machine (see above) as well as any other machine reliably?
Combining your both approaches in only one will look like this, and it shouldn't return any error.
If the error still persists, it is not connected to the code itself...
Only reference to Microsoft Word 16.0 Object Library necessary.
Sub openWordApp()
Dim wordApp As Word.Application
On Error Resume Next
Set wordApp = GetObject(, "Word.Application")
If Err.Number <> 0 Then
Err.Clear: On Error GoTo 0
Set wordApp = CreateObject("Word.Application")
End If
On Error GoTo 0
wordApp.Visible = True
Debug.Print wordApp.Documents.count
End Sub
Please, also check if not multiple Word sessions are open... Maybe you checked the code many times with Word session Visible = False and there still are a lot of such sessions open. Just maybe, but it would be good to check it.

Vbs on Excel Starter 2010: activex component can't create object Excel.Application

I have a new pc with Windows 7 and Office Starter 2010 pre-installed. If I launch the following simple vb script (from command line: cscript testScript.vbs):
Dim xlApp
Set xlApp = CreateObject("Excel.application")
xlApp.visible = True
Set xlWorkbooks = xlApp.Workbooks
Set xlWorkbook = xlWorkbooks.Open("C:\path\myFile.xls")
xlWorkbook.ActiveSheet.Rows("1:2").AutoFit
xlApp.visible = False
xlWorkbook.Save
xlWorkbook.Close("C:\path\myFile.xls")
xlApp.Quit
Set xlApp = Nothing
it returns this error: activex component can't create object 'Excel.Application'.
I don't understand if the error is due to Starter limitations (http://office.microsoft.com/en-us/starter-help/excel-features-that-are-not-fully-supported-in-excel-starter-HA010374501.aspx), and I found dissenting opinions on the web.
Is there a way to make it works using Office Starter version?
Despite this is already very aged question, I haved decided to post the following information only to help other googlers.
Since you are trying to create an instance of Excel.Application outside VBA, there's a good chance of being succeeded if you install an updated version of Microsoft Excel Viewer on target machine. This will allow you to access Excel's API.
Bear in mind, that Excel Starter Edition does not support macros, along with other important limitations.
Cheers!

Resources