2009-06-02 13 views

risposta

15

È possibile utilizzare questo metodo per ottenere l'id processo corrente.

Declare Function GetCurrentProcessId Lib "kernel32"() As Long 

This page ha un buona panoramica di come esattamente si può fare in varie versioni di Excel.

+0

Opere grande; si noti che nei moduli oggetto VBA (ad esempio, in un modulo associato a una cartella di lavoro di Excel), è necessario anteporre la dichiarazione a 'Private'. – mklement0

3

Come n00b VBA, alcune altre cose non sapevo

  1. L'istruzione Declare va in alto. VBA si lamenterà se l'istruzione declare è inserito dopo una dichiarazione sub

    Ad esempio, questo funzionerà

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

    Ma questo non funzionerà

    Sub Update 
        ... 
        ... 
    End Sub 
    
    Declare Function GetCurrentProcessId Lib "kernel32"() As Long 
    
  2. Ecco come visualizziamo il PID in una messagebox in vbscript

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

Spero che questo aiuti qualcuno

+0

E perché è stato downvoted? Il downvoter può spiegare? – Shreyas

1

La mia soluzione in Excel 2013: in un nuovo modulo, ho aggiunto il seguente codice:

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

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

++ per mostrare 'Private' e un esempio completo. – mklement0

Problemi correlati