تصحيح أخطاء البرنامج النصي لبرنامج Outlook 2007 الذي تم تشغيله بواسطة إحدى القواعد
-
14-11-2019 - |
سؤال
أحاول تصحيح أخطاء برنامج Outlook 2007 VBA النصي الذي يتم تشغيله بواسطة قاعدة.لقد قمت بتعيين نقطة توقف في البرنامج النصي ولكن لم يتم الوصول إليها.
السيناريو هو في الواقع أ Sub
في ال ThisOutlookSession
هدف.
عندما أقوم بتشغيل القاعدة على مجلد محدد، لا يبدو أن هناك شيئًا يحدث.
ما الخطأ الذي افعله؟
تحديث:
لقد أضفت أ MsgBox "Processing: " & mailItem.Subject
إلى البرنامج النصي وهذا ينبثق بشكل جيد عندما أقوم بتشغيل القاعدة.ومع ذلك، لا يبدو أنني أتمكن من إيقاف البرنامج النصي عند نقاط التوقف.
المحلول
أعتقد أنك ربما لا ترتكب أي خطأ، لأنني مررت بنفس السلوك تمامًا.
ومع ذلك، من أجل تصحيح أخطاء VBA الخاص بك، أقترح عليك إنشاء ماكرو (عبر قائمة الأدوات|الماكرو|وحدات الماكرو) الذي يستدعي وظيفة البرنامج النصي الخاص بك باستخدام عنصر بريد إلكتروني اختباري تقوم بإنشائه في الماكرو.
ربما شيء من هذا القبيل:
Sub TestScript()
Dim testMail As MailItem
Set testMail = Application.CreateItem(olMailItem)
testMail.Subject = "Test subject"
testMail.Body = "Test body"
Project1.ThisOutlookSession.YourScriptForDebugging testMail
End Sub
بهذه الطريقة يمكنك "الدخول" إلى الماكرو عبر مربع حوار الماكرو هذا مرة أخرى، وإجراء كل عمليات التصحيح التي تحتاجها.لقد حل مشكلتي، على أي حال.
نصائح أخرى
يمكن استخدام أي عنصر موجود لاختبار التعليمات البرمجية التي تتطلب واحدًا.
Sub passOpenItem()
'first open an item
codeRequiringItemParameter ActiveInspector.CurrentItem
End Sub
Sub passSeletion()
'first select an item
codeRequiringItemParameter ActiveExplorer.Selection(1)
End Sub
Sub codeRequiringItemParameter(itm As Object)
Debug.Print "TypeName: " & TypeName(itm)
Debug.Print "Class...: " & itm.Class
End Sub