2009-06-02 5 views

Antwort

15

Sie können diese Methode verwenden, um die aktuelle Prozess-ID abzurufen.

Declare Function GetCurrentProcessId Lib "kernel32"() As Long 

This page hat einen guten Überblick über genau, wie Sie es in verschiedenen Versionen von Excel zu tun.

+0

Arbeiten groß; Beachten Sie, dass Sie in VBA-Objektmodulen (z. B. in einem Modul, das mit einer Excel-Arbeitsmappe verknüpft ist), der Deklaration "Private" voranstellen müssen. – mklement0

3

Als vba n00b, einige andere Dinge, die ich wusste nicht,

  1. Die Anweisung Declare an der Spitze geht. VBA wird sich beschweren, wenn die declare-Anweisung nach einer Unter Erklärung eingefügt wird

    Zum Beispiel diese

    Declare Function GetCurrentProcessId Lib "kernel32"() As Long 
    
    Sub Update 
        ... 
        ... 
    End Sub 
    

    arbeiten Aber dies wird nicht funktionieren

    Sub Update 
        ... 
        ... 
    End Sub 
    
    Declare Function GetCurrentProcessId Lib "kernel32"() As Long 
    
  2. Hier ist, wie wir die PID Anzeige in einer MessageBox im Vbscript

    Set app = CreateObject("Excel.Application") 
    MsgBox("Excel PID is " + CStr(app.Run("GetCurrentProcessId"))) 
    

Hoffnung hilft dieses jemand

+0

Und warum wurde das abgelehnt? Kann der Downvoter das bitte erklären? – Shreyas

1

Meine Lösung in Excel 2013: in einem neuen Modul, ich den folgenden Code hinzugefügt:

Private Declare Function GetCurrentProcessId Lib "kernel32"() As Long 

Public Sub Test() 
    Debug.Print GetCurrentProcessId 
End Sub 
+0

++ für die Darstellung 'Private' und ein vollständiges Beispiel. – mklement0