كيفية الحصول على معرف عملية مثيل Excel الحالي، من خلال VBA، دون استخدام التسمية التوضيحية؟
سؤال
كيف يمكنني الحصول على معرف عملية مثيل Excel الحالي الذي يعمل عليه رمز VBA الخاص بي؟ لا أريد أن أسأله عن طريق الاسم في التسمية التوضيحية، مما يؤدي إلى مشاكل عندما يكون لدي مثيلتين أو أكثر من مثيلات Excel نفس التسمية التوضيحية.
المحلول
يمكنك استخدام هذه الطريقة للحصول على معرف العملية الحالية.
Declare Function GetCurrentProcessId Lib "kernel32" () As Long
هذه الصفحة لديه نظرة عامة جيدة على الطريقة بالضبط كيف يمكنك القيام بذلك في إصدارات مختلفة من Excel.
نصائح أخرى
باعتبارها VBA N00B، بعض الأشياء الأخرى التي لم أكن أعرفها
بيان إعلان يذهب في الأعلى. سوف تشكو VBA إذا تم إدراج بيان الإعلان بعد إعلان فرعي
على سبيل المثال، هذا سيعمل
Declare Function GetCurrentProcessId Lib "kernel32" () As Long Sub Update ... ... End Sub
ولكن هذا لن يعمل
Sub Update ... ... End Sub Declare Function GetCurrentProcessId Lib "kernel32" () As Long
فيما يلي كيفية عرض PID في صندوق Message في VBScript
Set app = CreateObject("Excel.Application") MsgBox("Excel PID is " + CStr(app.Run("GetCurrentProcessId")))
أمل أن هذا يساعد شخصاما
حلاي في Excel 2013: في وحدة نمطية جديدة، أضفت التعليمات البرمجية التالية:
Private Declare Function GetCurrentProcessId Lib "kernel32" () As Long
Public Sub Test()
Debug.Print GetCurrentProcessId
End Sub
لا تنتمي إلى StackOverflow