מתקבלת שגיאת זמן-ריצה 429 כאשר אתה הופך לאוטומטי יישומי Office

חל על: Office 2016Office 2013

סיכום


בעת שימוש באופרטור חדש או בפונקציה CreateObject ב- Visual Basic כדי ליצור מופע של יישום של Microsoft Office, ייתכן שתקבל את הודעת השגיאה הבאה:
שגיאת זמן ריצה '429': רכיב ActiveX אין אפשרות ליצור אובייקט
שגיאה זו מתרחשת כאשר Component Object Model (COM) אין אפשרות ליצור את אובייקט אוטומציה המבוקש, אובייקט אוטומציה , לפיכך, הוא אינו זמין ל- Visual Basic. שגיאה זו מתרחשת בכל המחשבים.מאמר זה מתאר כיצד לאבחן ולפתור בעיות נפוצות אשר עלול לגרום לשגיאה זו.

מידע נוסף


ב- Visual Basic, קיימים כמה גורמים לשגיאה 429. השגיאה מתרחשת אם מתקיים אחד מהתנאים הבאים מתקיים: 
  • ישנה טעות ביישום.
  • ישנה טעות בתצורת המערכת.
  • אין רכיב חסר.
  • אין רכיב פגום.
כדי לאתר את הגורם לשגיאה, לבודד את הבעיה. אם אתה מקבל את הודעת השגיאה "429" במחשב לקוח, השתמש במידע שלהלן כדי לבודד ולפתור את השגיאה ביישומי Microsoft Office.הערה חלק מהמידע הבא יכול לחול גם על שרתי COM שאינם של Office. עם זאת, מאמר זה מניח כי ברצונך להפוך לאוטומטיות יישומי Office.

לבדוק את קוד

לפני שתפתור את השגיאה, נסה לבודד שורה בודדת של קוד העשויים להיות הגורם לבעיה.אם גילית כי שורה בודדת של קוד להיות הגורם לבעיה, להשלים הליכים אלה: 
  • ודא שהקוד משתמש יצירת אובייקט מפורשות. בעיות הן קל יותר לזהות אם הם נמצאים המצומצמים כדי פעולה בודדת. לדוגמה, חפש יצירת אובייקט המשתמעת המשמש כיחידה אחת מהפעולות הבאות. דוגמת קוד 1
    Application.Documents.Add 'DON'T USE THIS!!
    דוגמת קוד 2
    Dim oWordApp As New Word.Application 'DON'T USE THIS!!'... some other codeoWordApp.Documents.Add
    שתי דוגמאות קוד אלה שימוש ביצירת אובייקט משתמע. Microsoft Office Word 2003 לא יופעל עד המשתנה נקרא לפחות פעם אחת. מאחר המשתנה עשוי להיקרא בחלקים שונים של התוכנית, הבעיה עשויה להיות קשה לאתר. ייתכן שיהיה קשה לוודא כי הבעיה נגרמת כאשר נוצר אובייקט היישום או בעת יצירה של אובייקט המסמך . במקום זאת, באפשרותך לבצע שיחות מפורשות כדי ליצור כל אובייקט בנפרד, כדלקמן.
    Dim oWordApp As Word.ApplicationDim oDoc As Word.DocumentSet oWordApp = CreateObject("Word.Application")'... some other codeSet oDoc = oWordApp.Documents.Add
    בעת ביצוע שיחות מפורשות כדי ליצור כל אובייקט בנפרד, הבעיה קל לבודד. הדבר עשוי להפוך את הקוד לקריא יותר.
  • השתמש בפונקציה CreateObject במקום באופרטור חדש בעת יצירת מופע של יישום Office. הפונקציה CreateObject ממפה במידה רבה את תהליך היצירה לקוחות Microsoft Visual C++ רוב המשתמשים. הפונקציה CreateObjectהפונקציה מאפשרת גם שינויים בה-CLSID של שרת בין גירסאות. באפשרותך להשתמש CreateObjectפונקציה עם אובייקטים איגוד מוקדם ועם אובייקטים איגוד מאוחר.
  • ודא המחרוזת "ProgID" מועבר אל הפונקציה CreateObject נכון ולאחר מכן ודא המחרוזת "ProgID" הוא הגירסה בלתי תלויות. לדוגמה, השתמש במחרוזת "Excel.Application" במקום באמצעות מחרוזת "Excel.Application.8". ייתכן שמערכת שנכשל גירסה קודמת של Microsoft Office או גירסה חדשה יותר של Microsoft Office יותר מהגירסה שציינת במחרוזת "ProgID".
  • השתמש בפקודה Erl כדי הדוח את מספר השורה של שורת קוד לא הצליחה. הדבר עשוי לסייע לך לאתר באגים יישומים שלא ניתן להפעיל ב- IDE. הקוד הבא מודיע לך אין אפשרות ליצור את אובייקט אוטומציה (Microsoft Word או Microsoft Office Excel 2003):
    Dim oWord As Word.Application Dim oExcel As Excel.Application  On Error Goto err_handler  1: Set oWord = CreateObject("Word.Application") 2: Set oExcel = CreateObject("Excel.Application")  ' ... some other code  err_handler:   MsgBox "The code failed at line " & Erl, vbCritical
    השתמש בפונקציה MsgBox ומספר שורה כדי לעקוב אחר השגיאה.
  • השתמש איגוד מאוחר כדלקמן:
    Dim oWordApp As Object
    אובייקטים של איגוד מוקדם דורשים שלהם ממשקים מותאמים אישית כדי להיות מסודר מעבר לגבולות התהליך. אם אין אפשרות לסדר את ממשק מותאם אישית במהלך CreateObject או במהלך חדש, תקבל את הודעת השגיאה "429". אובייקט איגוד מאוחר משתמש בממשק IDispatch המוגדר על-ידי מערכת שאינה דורשת proxy מותאמים אישית להיות מסודר. השתמש באובייקט איגוד מאוחר כדי לוודא בהליך זה פועל כראוי. אם הבעיה מתרחשת רק כאשר האובייקט הוא איגוד מוקדם, הבעיה היא ביישום שרת. בדרך כלל, באפשרותך להתקין מחדש את היישום כמתואר בסעיף "לבחון שרת אוטומציה" במאמר זה כדי לפתור את הבעיה.

בדוק את שרת אוטומציה

הסיבה הנפוצה ביותר שגיאה להתרחש בעת שימוש CreateObject או חדש היא בעיה שמשפיעה על יישום השרת. בדרך כלל, את התצורה של היישום או את תוכנית ההתקנה של היישום גורמת לבעיה. כדי לפתור בעיות, השתמש בשיטות הבאות:

  • ודא כי היישום Office שברצונך להפוך לאוטומטיות מותקן במחשב המקומי. ודא שבאפשרותך להפעיל את היישום. כדי לעשות זאת, לחץ על התחל, לחץ הפעלולאחר מכן מנסה להפעיל את היישום. אם אין באפשרותך להפעיל באופן ידני את היישום, היישום לא יפעל עד אוטומציה.
  • רשום מחדש את היישום כדלקמן:  
    1. לחץ על התחלולאחר מכן לחץ על הפעל.
    2. בתיבת הדו-שיח הפעלה , הקלד את הנתיב של השרת ולאחר מכן צרף /RegServer לסוף השורה.
    3. לחץ על אישור. היישום פועל בצורה שקטה. היישום אינו רשום מחדש של שרת COM.
    אם הבעיה מתרחשת משום שחסר מפתח רישום, שלבים אלה בדרך כלל לתקן את הבעיה.
  • בחן את המפתח LocalServer32 תחת ה-CLSID עבור היישום שברצונך להפוך לאוטומטיות. ודא כי המפתח LocalServer32 מצביע על המיקום הנכון עבור היישום. ודא כי שם הנתיב בתבנית נתיב קצר (DOS 8.3). אין לך להירשם לשרת באמצעות שם נתיב קצר. עם זאת, שמות נתיבים ארוכים הכוללים רווחים מוטבעים עלולים לגרום לבעיות במערכות מסוימות. כדי לבחון את נתיב המפתח המאוחסן עבור השרת, להפעיל את עורך הרישום של Windows, כדלקמן:  
    1. לחץ על התחלולאחר מכן לחץ על הפעל.
    2. הקלד regeditולאחר מכן לחץ על אישור.
    3. הזז המפתח HKEY_CLASSES_ROOT\CLSID. מזהי המחלקה עבור שרתי אוטומציה שנרשמו במערכת הם תחת מפתח זה.
    4. השתמש בערכים הבאים של מפתח מחלקה (clsid) כדי למצוא את המפתח המייצג את יישום Office שברצונך להפוך לאוטומטיות. בחן את המפתח LocalServer32 של מפתח מחלקה (clsid) עבור הנתיב.  
      שרת של office מפתח מחלקה (clsid)
      Access.Application {73A4C9C1-D68D-11D0-98BF-00A0C90DC8D9}
      Excel.Application {00024500-0000-0000-C000-000000000046}
      Outlook.Application {0006F03A-0000-0000-C000-000000000046}
      PowerPoint.Application {91493441-5A91-11CF-8700-00AA0060263B}
      Word.Application {000209FF-0000-0000-C000-000000000046}
    5. בדוק את הנתיב כדי לוודא שהוא תואם את המיקום בפועל של הקובץ.
    הערה שמות נתיב קצר אולי נראה הנכון כאשר הם אינם נכונים. לדוגמה, Office ו- Microsoft Internet Explorer (אם הם מותקנים במיקומי ברירת המחדל שלהם) יש נתיב קצרים בנוסח C:\PROGRA~1\MICROS~X\ (היכן X הוא מספר). שם זה עשוי לא מופיעים תחילה להיות שם נתיב קצר. כדי לקבוע אם הנתיב הנכון, בצע את הפעולות הבאות:  
    1. לחץ על התחלולאחר מכן לחץ על הפעל.
    2. העתק את הערך מהרישום ולאחר מכן הדבק את הערך בתיבת הדו-שיח הפעלה . הערה הסר את הבורר /automation לפני הפעלת היישום.
    3. לחץ על אישור.
    4. ודא שהיישום פועל כראוי. אם היישום פועל לאחר שתלחץ על אישור, השרת רשום כראוי. אם היישום אינו פועל לאחר שתלחץ על אישור, החלף את ערך המפתח LocalServer32 הנתיב הנכון. השתמש בשם נתיב קצר אם ניתן.
  • לבדוק אם קיימים פגמים אפשריים של תבנית normal. dot או של קובץ המשאבים Excel.xlb. בעיות עלולות להתרחש כאשר אתה הופך לאוטומטי Microsoft Word או Microsoft Excel אם התבנית normal. dot ב- Word או או את קובץ המשאבים Excel.xlb ב- Excel פגום. כדי מחשב קבצים אלה, חפש את הדיסקים הקשיחים המקומיים עבור כל המופעים של normal. dot או Excel.xlb. הערה ייתכן שתמצא מספר עותקים של קבצים אלה. אין עותק אחד של כל אחד מהקבצים האלה עבור כל פרופיל משתמש המותקנת במערכת. לשנות באופן זמני את הקבצים normal. dot או הקבצים Excel.xlb ולאחר מכן הפעל מחדש את מחשב אוטומציה. Word ו- Excel שניהם ליצור קבצים אלה אם ניתן למצוא אותם. ודא שהקוד פועל. אם הקוד פועל בעת יצירת קובץ normal. dot החדש, מחק את הקבצים ששינית את שמו. קבצים אלה הם פגומים. אם הקוד אינו פועל, עליך לחזור קבצים אלה שמות הקבצים המקוריים שלהן כדי לשמור הגדרות מותאמות אישית שנשמרים בקבצים אלה.
  • הפעל את היישום תחת חשבון מנהל המערכת. שרתי office דורש גישת קריאה/כתיבה ברישום וכדי כונן הדיסקים. ייתכן שרתי office לא נטען כראוי אם הגדרות האבטחה הנוכחיות שלך מנע גישת קריאה/כתיבה.

לבחון את המערכת

תצורת המערכת גם עלול לגרום לבעיות עבור היצירה של שרתי COM מחוץ לתהליך. כדי לפתור בעיות, השתמש בשיטות הבאות במערכת שבהם מתרחשת השגיאה:

  • לברר אם הבעיה מתרחשת עם שרת יוצא של תהליך כלשהו. אם יש לך יישום המשתמש שרת COM מסוים (כגון Word), מחשב שרת מחוץ לתהליך אחר כדי לוודא שהבעיה אינה והמתן בשכבת COM עצמו. אם אין באפשרותך ליצור שרת COM מחוץ לתהליך במחשב, להתקין מחדש את קבצי המערכת של OLE כמתואר בסעיף 'התקנה מחדש של Microsoft Office' במאמר זה, או להתקין מחדש את מערכת ההפעלה כדי לפתור את הבעיה.
  • לבדוק את מספרי הגירסאות עבור קבצי מערכת OLE שינהלו אוטומציה. קבצים אלה מותקנים בדרך כלל כערכה. קבצים אלה חייבים להתאים מספרי הבנייה. כלי שירות ההתקנה שתצורתו נקבעה באופן שגוי יכול בטעות להתקין את הקבצים בנפרד. פעולה זו גורמת הקבצים להיות לא תואמים. כדי להימנע מבעיות באוטומציית, בחן את הקבצים כדי לוודא גירסאות build קבצים תואמים. הקבצים אוטומציה ממוקמים בספריה Windows\System32. בדוק את הקבצים הבאים.  
    שם קובץ גירסה תאריך שינוי
    Asycfilt.dll 10.0.16299.15 29 בספטמבר, 2017
    Ole32.dll 10.0.16299.371 29 במרץ, 2018
    Oleaut32.dll 10.0.16299.431 3 במאי 2018
    Olepro32.dll 10.0.16299.15 29 בספטמבר, 2017
    Stdole2.tlb 3.0.5014 29 בספטמבר, 2017
    כדי לבדוק את גירסת הקובץ, לחץ לחיצה ימנית על הקובץ בסייר Windows ולאחר מכן לחץ על מאפיינים. שים את ארבע הספרות האחרונות של גירסת הקובץ (מספר build) ואת התאריך שבו הקובץ השתנה לאחרונה. ודא כי ערכים אלה זהים עבור כל הקבצים אוטומציה. הערה הקבצים הבאים הם עבור 1709 של גירסה 10 ב- Windows, בנייה 16299.431. מספרים ותאריכים אלה הם דוגמאות בלבד. הערכים שלך עשויות להיות שונות.  
  • השתמש בכלי השירות לקביעת תצורת המערכת (Msconfig.exe) כדי לבדוק את השירותים ואת מערכת ההפעלה עבור יישומים של ספקים חיצוניים עשויים להגביל את הקוד הפועל ביישום של Office. לקבלת מידע נוסף אודות Msconfig.exe, עיין במאמר הבא מתוך מאגר הידע Microsoft Knowledge Base:
    181966 פתרון בעיות של הגדרות מתקדמות של כלי השירות לקביעת תצורת המערכת
    לדוגמה, יישומים אוטומציה Outlook עלולה להיכשל מכיוון שאתה מפעיל תוכנית אנטי-וירוס בעל תכונות "הפריטים המוקפצים script". הערה בטל את תוכנית האנטי-וירוס באופן זמני בלבד במערכת מחשב שאינו מחובר לרשת. לחלופין, בצע את הפעולות הבאות ב- Outlook כדי ביטול תוספות צד שלישי: אם שיטה זו פותרת את הבעיה, פנה אל ספק האנטי-וירוס של צד שלישי לקבלת מידע נוסף אודות עדכון לתוכנית האנטי-וירוס.  
    1. בתפריט קובץ , לחץ על אפשרויותולאחר מכן לחץ על תוספות.
    2. לחץ על תוספות COM ניהולולאחר מכן לחץ על עבור. הערה פתיחת תיבת הדו-שיח תוספות COM .
    3. נקה את תיבת הסימון עבור כל תוספת של צד שלישי ולאחר מכן לחץ על אישור.
    4. הפעל מחדש את Outlook.

התקן מחדש את Office

אם אף אחד ההליכים הקודמים לפתור את הבעיה, הסר ולאחר מכן התקן מחדש את Office.

לקבלת מידע נוסף, ראה Office במאמרהבא:

הפניות


לקבלת מידע נוסף אודות באוטומציה של Office ודוגמאות קוד, עבור אתר האינטרנט הבא של Microsoft: