¿Cómo puedo obtener el ID de proceso de la instancia actual de Excel en la que se ejecuta mi código VBA? No quiero pedirlo por el nombre en el título, lo que causa problemas cuando tengo dos o más instancias de Excel con el mismo título.¿Cómo obtener el ID de proceso de la instancia de Excel actual, a través de VBA, sin usar el título?
¿Cómo obtener el ID de proceso de la instancia de Excel actual, a través de VBA, sin usar el título?
Respuesta
Puede utilizar este método para obtener la identificación del proceso actual.
Declare Function GetCurrentProcessId Lib "kernel32"() As Long
This page tiene una buena visión general de cómo exactamente se puede hacer en varias versiones de Excel.
Como n00b VBA, algunas otras cosas que no sabían
La instrucción Declare va en la parte superior. VBA se quejará si se introduce la instrucción declare después de una declaración sub
Por ejemplo, esto va a funcionar
Declare Function GetCurrentProcessId Lib "kernel32"() As Long Sub Update ... ... End Sub
Pero esto no funcionará
Sub Update ... ... End Sub Declare Function GetCurrentProcessId Lib "kernel32"() As Long
Aquí es cómo mostramos el PID en un cuadro de mensaje en vbscript
Set app = CreateObject("Excel.Application") MsgBox("Excel PID is " + CStr(app.Run("GetCurrentProcessId")))
Espero que esto ayude a alguien
¿Y por qué se bajó este voto? ¿Puede el infractor explicar por favor? – Shreyas
Mi solución en Excel 2013: en un módulo nuevo, he añadido el siguiente código:
Private Declare Function GetCurrentProcessId Lib "kernel32"() As Long
Public Sub Test()
Debug.Print GetCurrentProcessId
End Sub
++ para mostrar 'Privado' y un ejemplo completo. – mklement0
- 1. ¿Cómo obtener el ID de proceso actual?
- 2. ¿Cómo obtener una instancia de Excel o un CLSID de instancia de Excel utilizando la ID del proceso?
- 3. Obtener el #id de la URL actual
- 4. Cómo obtener el año actual usando Vba
- 5. Obtener instancia por ID de instancia
- 6. obtener el nombre del proceso desde el proceso id (win32)
- 7. ¿Cómo obtener el ID del proceso del nombre del proceso?
- 8. Cómo liberar el objeto del servidor COM en proceso de Excel VBA
- 9. Windows phone: cómo obtener la ID de aplicación actual
- 10. ¿Cómo obtener el nombre interno de la forma en Excel
- 11. ¿Cómo obtener el nombre de la propiedad actual a través de la reflexión?
- 12. Neo4j - Cómo obtener la versión actual a través de REST
- 13. ¿Cómo sudo el proceso actual?
- 14. Cómo obtener el nombre de dispositivo amigable de DEV_BROADCAST_DEVICEINTERFACE y la ID de instancia de dispositivo
- 15. ¿Cómo usar el contador de rendimiento o la clase de proceso correctamente en C# para obtener el uso de la memoria del proceso actual?
- 16. ¿Cómo utilizar el enlace tardío para obtener la instancia de Excel?
- 17. Obtiene el título de la figura actual en MATLAB?
- 18. Android: ¿Cómo obtener el ID del recurso del tema actual?
- 19. Excel VBA: obtener el valor de la celda, independientemente del formato de la celda
- 20. Subcadena de Excel VBA
- 21. ¿Cómo usar el control de versiones con el código VBA?
- 22. Obtener el nombre completo de la computadora actual en powershell sin usar el módulo ActiveDirectory
- 23. Exportación MS tablas de acceso a través de VBA a una hoja de cálculo de Excel en el mismo directorio
- 24. PowerShell: obtenga el ID de proceso de la aplicación llamada
- 25. ¿Cómo puedo obtener la configuración actual de la aplicación web sin usar HttpContext?
- 26. ¿Cómo obtener el nombre de dominio a través de JavaScript?
- 27. Cómo obtener el tamaño de un rango en Excel
- 28. Usar el objeto del diccionario en Excel VBA
- 29. VBA Excel Proporcionar la fecha actual en el cuadro de texto
- 30. Cómo llamar a un script Bash de VBA (Excel)
Funciona muy bien; tenga en cuenta que en los módulos de objetos de VBA (por ejemplo, en un módulo asociado a un libro de Excel), debe poner un prefijo a la declaración con 'Privado'. – mklement0