Cómo ver toda la información de su PC usando una secuencia de comandos simple de Excel VBA

Excel y 10 minutos de trabajo le brindarán información más detallada sobre su computadora de lo que alguna vez pensó posible. Suena demasiado bueno para ser verdad? Eso es Windows, si sabes cómo usarlo.

Excel y 10 minutos de trabajo le brindarán información más detallada sobre su computadora de lo que alguna vez pensó posible.  Suena demasiado bueno para ser verdad?  Eso es Windows, si sabes cómo usarlo.
Anuncio

¿Alguna vez ha necesitado saber la CPU o los detalles de la memoria de su computadora, el número de serie o de modelo o las versiones de software instaladas, pero no estaba seguro de dónde mirar? Con solo un poco de código simple en Excel, puede extraer una biblioteca completa de la información de su PC con Windows. ¿Obtuvo la PC que ordenó? Averigüe con estas herramientas de información del sistema [Windows] ¿Obtuvo la PC que ordenó? Averigüe con estas herramientas de información del sistema [Windows] ¿Recientemente ha comprado una PC? Si es así, ¿fue personalizado? Por personalizado, me refiero a ensamblado por una tienda de informática local, o simplemente por alguien que usted conoce que construye y vende computadoras. Si tu ... Leer más.

Suena demasiado bueno para ser verdad? Bueno, eso es Windows, si sabes cómo usarlo.

Es posible que tenga que ensuciarse las manos, pero en este artículo le proporcionaremos todo el código que necesita y cómo colocarlo en Excel y hacerlo funcionar. Una vez que haya terminado, tendrá una hoja de Excel que, cada vez que la abra, le dirá todo lo que siempre quiso saber sobre su sistema informático.

Tenga en cuenta que esto solo funcionará con la versión de escritorio de Excel, que puede obtener con una versión de prueba gratuita de Office. 6 formas en que puede usar Microsoft Office sin pagarlo. 6 formas en que puede usar Microsoft Office sin pagar. ¿Necesita Microsoft Office?, pero no me gusta el precio? Le mostramos alternativas gratuitas, incluidas versiones de prueba gratuitas y versiones ligeras o móviles del conjunto de aplicaciones de Microsoft Office. Lee mas .

La magia de WMI

En cualquier computadora que tenga un sistema operativo Microsoft, tiene acceso a un poderoso conjunto de extensiones llamado Windows Management Instrumentation (WMI), que le proporciona un método muy poderoso y extenso para acceder a información y especificaciones sobre su computadora, sistema operativo. 4 Easy Ways saber si tiene una versión de 64 bits de Windows 4 Maneras fáciles de saber si tiene una versión de Windows de 64 bits ¿Está utilizando un procesador que admite un sistema operativo de 64 bits y está ejecutando un 64 sistema operativo de bits? El usuario promedio de PC con y sin conexión probablemente no sepa las respuestas a estas preguntas, aunque debería ... Leer más, y el software instalado.

wmiwindows

Lo mejor de todo es que se puede acceder a la WMI Cómo escribir una secuencia de comandos de Windows Para cambiar la configuración de red sobre la marcha Cómo escribir una secuencia de comandos de Windows Para cambiar la configuración de red sobre la marcha En muchas oficinas o entornos de trabajo, es posible que deba redefinir la configuración de red para conectarse a diferentes redes. Me encontré en esta situación con bastante frecuencia, y me cansé de navegar al ... Leer más de lenguajes de programación como VBA Cómo puedes hacer tu propia aplicación simple con VBA Cómo puedes hacer tu propia aplicación simple con VBA Para aquellos de usted que realmente le encantaría poder escribir su propia aplicación, pero nunca antes ha escrito una sola línea de código, lo guiaré para que lo haga ... Leer más, disponible en casi todos los productos de Microsoft Office.

Configuración de su hoja de cálculo automatizada

Primero, cree su nuevo libro de trabajo de Excel y llámelo algo así como MyComputerInfo. xlsm (Macro habilitada). Ábrelo, omita Sheet1 y cambie el nombre de las siguientes 11 hojas de la siguiente manera:

  • Red
  • LogicalDisk
  • Procesador
  • Memoria física
  • Controlador de video
  • Dispositivos a bordo
  • Sistema operativo
  • Impresora
  • Software
  • Cuentas
  • Servicios

Estos contendrán todos los detalles de su computadora y se actualizarán cada vez que abra esta hoja de cálculo de Excel.

wmi1

A continuación, vaya al elemento del menú Desarrollador y en la sección Controles, haga clic en Ver código .

wmi2

Si no ve el elemento del menú Desarrollador, haga clic en Archivo> Opciones> Personalizar cinta, cambie los comandos Elegir desde del menú desplegable a Todas las pestañas, seleccione Desarrollador y presione el botón Agregar >> para agregarlo al lado Personalizado de la cinta. Asegúrese de que la casilla de verificación del desarrollador en ese lado esté seleccionada una vez que la haya agregado.

wmi3

Una vez que esté dentro del editor de código VBA Supervise si sus aplicaciones VBA funcionan con este elegante monitor de secuencias de comandos Si sus aplicaciones VBA se ejecutan con esta secuencia de comandos simplificada Leer más, todo lo que tiene que hacer es agregar las secuencias de comandos a un módulo. Estas secuencias de comandos harán todo el trabajo pesado. No tiene que escribir este código usted mismo, simplemente cópielo y péguelo como se muestra a continuación.

Una vez que haya terminado de copiar y pegar utilizando el código en la siguiente sección, todo lo que tiene que hacer es agregar un poco más de código para cargar sus hojas, y listo.

De acuerdo, ¿listo para copiar y pegar? Hagámoslo.

Construyendo sus módulos WMI

La inspiración para este código proviene de un fantástico recurso de Google Sites llamado Beyond Excel. El ejemplo que se muestra allí es una subrutina llamada WMI (), que pasa toda la información de red de su computadora al área de depuración del entorno de programación de Excel.

Por supuesto, no nos sirve de mucho, así que modifiqué el código para mostrar todos los detalles en una de las hojas que creó en el primer paso de esta guía.

En el área de navegación de codificación, también verá una sección llamada Módulos y un componente bajo llamado Módulo1 . Haga doble clic en esto para abrirlo. Si no ve la carpeta Módulos, expanda Insertar desde el menú y seleccione Módulo .

wmi5

Esta área es donde estarán todas las subrutinas que usarán WMI para extraer toda la información importante sobre su computadora y cargarla en las hojas que creó.

Coloque las siguientes líneas en la parte superior de la ventana de código por sí mismo.

Public oWMISrvEx As Object 'SWbemServicesEx Public oWMIObjSet As Object 'SWbemServicesObjectSet Public oWMIObjEx As Object 'SWbemObjectEx Public oWMIProp As Object 'SWbemProperty Public sWQL As String 'WQL Statement Public n 

Debería verse así cuando hayas terminado:

wmi5

Pegue el siguiente código en Module1 debajo de las líneas que acaba de crear:

 Sub NetworkWMI() sWQL = "Select * From Win32_NetworkAdapterConfiguration" Set oWMISrvEx = GetObject("winmgmts:root/CIMV2") Set oWMIObjSet = oWMISrvEx.ExecQuery(sWQL) intRow = 2 strRow = Str(intRow) ThisWorkbook.Sheets("Network").Range("A1").Value = "Name" ThisWorkbook.Sheets("Network").Cells(1, 1).Font.Bold = True ThisWorkbook.Sheets("Network").Range("B1").Value = "Value" ThisWorkbook.Sheets("Network").Cells(1, 2).Font.Bold = True For Each oWMIObjEx In oWMIObjSet For Each oWMIProp In oWMIObjEx.Properties_ If Not IsNull(oWMIProp.Value) Then If IsArray(oWMIProp.Value) Then For n = LBound(oWMIProp.Value) To UBound(oWMIProp.Value) Debug.Print oWMIProp.Name & "(" & n & ")", oWMIProp.Value(n) ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value(n) ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft intRow = intRow + 1 strRow = Str(intRow) Next Else ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft intRow = intRow + 1 strRow = Str(intRow) End If End If Next 'End If Next End Sub 

Ahora, creará una función idéntica a esta para cada hoja que creó en la primera parte de esta guía con algunas diferencias menores.

Por ejemplo, a continuación, copie el código anterior para NetworkWMI (), péguelo debajo del final de ese código y luego reemplace "NetworkWMI ()" con "LogicalDiskWMI ()"

Solo necesita cambiar algunas secciones para que este código complete la hoja correcta.

Cambia esto:

 sWQL = "Select * From Win32_NetworkAdapterConfiguration" 

A esto:

 sWQL = "Select * From Win32_LogicalDisk" 

Cambia estas cuatro líneas:

 ThisWorkbook.Sheets("Network").Range("A1").Value = "Name" ThisWorkbook.Sheets("Network").Cells(1, 1).Font.Bold = True ThisWorkbook.Sheets("Network").Range("B1").Value = "Value" ThisWorkbook.Sheets("Network").Cells(1, 2).Font.Bold = True 

A esto:

 ThisWorkbook.Sheets("LogicalDisk").Range("A1").Value = "Name" ThisWorkbook.Sheets("LogicalDisk").Cells(1, 1).Font.Bold = True ThisWorkbook.Sheets("LogicalDisk").Range("B1").Value = "Value" ThisWorkbook.Sheets("LogicalDisk").Cells(1, 2).Font.Bold = True 

Cambia estas dos líneas:

 ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value(n) 

A esto:

 ThisWorkbook.Sheets("LogicalDisk").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("LogicalDisk").Range("B" & Trim(strRow)).Value = oWMIProp.Value(n) 

Y estas tres líneas:

 ThisWorkbook.Sheets("Network").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).Value = oWMIProp.Value ThisWorkbook.Sheets("Network").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft 

A esto:

 ThisWorkbook.Sheets("LogicalDisk").Range("A" & Trim(strRow)).Value = oWMIProp.Name ThisWorkbook.Sheets("LogicalDisk").Range("B" & Trim(strRow)).Value = oWMIProp.Value ThisWorkbook.Sheets("LogicalDisk").Range("B" & Trim(strRow)).HorizontalAlignment = xlLeft 

Ahora, ¡casi has terminado!

Repita lo anterior para cada pestaña en su libro de trabajo. Las funciones serán las siguientes:

  • "ProcessorWMI ()" para la hoja "Procesador".
  • "PhysicalMemWMI ()" para la hoja "Memoria física".
  • "VideoControlWMI ()" para la hoja "Controlador de video".
  • "OnBoardWMI ()" para la hoja "OnBoardDevices".
  • "PrinterWMI ()" para la hoja "Impresora".
  • "OperatingWMI ()" para la hoja del sistema operativo.
  • "SoftwareWMI ()" para la hoja "Software".
  • "ServicesWMI ()" para la hoja "Servicios".

Los objetos especiales "Win32_" que necesita usar para acceder a esta información sobre su computadora son los siguientes:

  • Win32_NetworkAdapterConfiguration: todas las configuraciones de configuración de red
  • Win32_LogicalDisk - Discos con capacidades y espacio libre.
  • Win32_Processor - Especificaciones de la CPU
  • Win32_PhysicalMemoryArray - RAM / tamaño de memoria instalada
  • Win32_VideoController - Adaptador de gráficos y configuración
  • Win32_OnBoardDevice - Dispositivos de placa base
  • Win32_OperatingSystem: la versión de Windows con número de serie
  • WIn32_Printer - Impresoras instaladas
  • Win32_Product - Software instalado
  • Win32_BaseService: enumera los servicios que se ejecutan (o detienen) en cualquier PC junto con la ruta y el nombre del archivo del servicio.

Termine de copiar / pegar y ajustar cada una de esas funciones en el área Module1 del código. Cuando termines, pasa a la siguiente sección de esta guía.

¡Recuerde guardar su código en la vista VB! Si inicialmente guardó su libro de trabajo con el tipo de archivo .xls, Excel ahora le pedirá que use un tipo de archivo Macro habilitado, como .xlsm .

Cargar automáticamente el libro de trabajo

Ahora que tiene todas esas poderosas funciones creadas, todo lo que queda es ejecutarlas cada vez que se abre el libro de trabajo. Hacer esto es realmente fácil.

En el navegador de objetos izquierdo, en Objetos de Microsoft Excel, debería ver ThisWorkbook . Haga doble clic en ese objeto para abrirlo.

wmi6

En la parte superior del área de código, hay dos cuadros desplegables, cambie el de la izquierda a Libro de trabajo y el derecho a Abrir .

wmi7

Verá una función generada automáticamente para usted llamada Private Sub Workbook_Open () .

Dentro de aquí, escriba las siguientes líneas de código para que la función se vea así:

 Private Sub Workbook_Open() NetworkWMI LogicalDiskWMI ProcessorWMI PhysicalMemWMI VideoControlWMI OnBoardWMI PrinterWMI SoftwareWMI OperatingWMI ServicesWMI End Sub 

Ahora, cada vez que abre el libro de trabajo, se llamará a cada una de sus funciones recién creadas, extraerá todos los datos Visualizará sus datos y hará que sus hojas de cálculo sean fáciles de usar con un panel de Excel Visualice sus datos y convierta sus hojas de cálculo en fáciles de usar con un panel de Excel, un formato de hoja de cálculo simple no es lo suficientemente atractivo como para hacer que sus datos sean accesibles. Un tablero de instrumentos le permite presentar sus datos más importantes en un formato fácil de digerir. Lea más en la computadora y cárguelo en la hoja correspondiente.

Para verlo en acción, guarde el código, cierre la ventana de código, guarde el libro de trabajo y cierre eso también. Vuelva a abrir el archivo que acaba de cerrar, y descubrirá que cada hoja contiene volúmenes de datos sobre su computadora.

Como el libro de trabajo contiene Macros, que se pueden deshabilitar por razones de seguridad, es posible que deba hacer clic en Habilitar contenido en la parte superior de la hoja para recopilar los datos.

Advertencia: recoge MUCHOS datos, así que espere unos minutos hasta que se carguen cuando abra el archivo por primera vez.

Recopilación de información de la computadora

Lo sorprendente de usar WMI para esto es que los datos anteriores son solo la punta del iceberg. Hay cientos más de clases WMI disponibles que contienen información sobre cada aspecto de su sistema informático.

Si fue aventurero y quería llevar esto un paso más allá, podría convertir la primera hoja del libro en un tablero de instrumentos. Construir su propio tablero meteorológico en esta clase principal de hojas de cálculo de Google. Construir su propio tablero meteorológico en esta clase maestra de hojas de cálculo de Google. ¿Le gustaría? para convertir tu cuenta de Google Drive en un sistema de análisis meteorológico inteligente y vivir una fantasía de Star Trek? ¡De acuerdo! Lea más, y use los datos de las otras hojas para alimentar ese tablero.

La conclusión es que con esta nueva herramienta, podrá recopilar y mostrar más información que la mayoría de los expertos en TI IT Knowledge Exchange: ¡una versión gratuita de Experts Exchange! IT Knowledge Exchange - ¡Una versión gratuita de Experts Exchange! Leer más, incluso darse cuenta, está disponible sobre un sistema informático, y podrá hacerlo en una fracción del tiempo que dedican esos mismos expertos a explorar el panel de control y las áreas administrativas en busca de esos detalles.

¿Te ves construyendo y usando una herramienta como esta? ¿Eres un programador de VBA? 4 sitios web geniales para convertirte en un gurú de Visual Basic 4 sitios web geniales para convertirte en un gurú de Visual Basic ¿Quieres aprender Visual Basic? Aquí hay algunos recursos geniales para comenzar. Lea más y ¿alguna vez ha usado clases WMI? ¡Comparte tus propias experiencias e ideas en la sección de comentarios a continuación!

Créditos de las imágenes: Adriano Castelli a través de Shutterstock.com, Mclek a través de Shutterstock

In this article