Hoe u al uw pc-informatie kunt bekijken met behulp van een eenvoudig Excel VBA-script

Excel en 10 minuten werk geven u meer gedetailleerde informatie over uw computer dan u ooit voor mogelijk had gehouden. Klinkt te mooi om waar te zijn? Dat is Windows, als u weet hoe u het moet gebruiken.

Excel en 10 minuten werk geven u meer gedetailleerde informatie over uw computer dan u ooit voor mogelijk had gehouden.  Klinkt te mooi om waar te zijn?  Dat is Windows, als u weet hoe u het moet gebruiken.
Advertentie

Hebt u ooit de CPU- of geheugengegevens, het serienummer of het modelnummer van uw computer of geïnstalleerde softwareversies moeten weten, maar wist u niet zeker waar u moest zoeken? Met een klein beetje eenvoudige code in Excel, kunt u een hele bibliotheek met uw Windows-pc-informatie extraheren. Heeft u de pc die u hebt besteld gekregen? Ontdek met deze hulpprogramma's voor systeeminformatie [Windows] Hebt u de pc die u hebt besteld gekregen? Ontdek met deze hulpprogramma's voor systeeminformatie [Windows] Heeft u onlangs een pc gekocht? Zo ja, was dit aangepast? Op maat bedoel ik: geassembleerd door een lokale computerwinkel, of zelfs alleen door iemand die je kent die computers bouwt en verkoopt. Als je ... Lees meer.

Klinkt te mooi om waar te zijn? Wel, dat is Windows, als je weet hoe je het moet gebruiken.

Misschien moet je je handen een beetje vies maken, maar in dit artikel zullen we je alle code geven die je nodig hebt, en hoe je het in Excel plaatst en laat werken. Als u klaar bent, krijgt u een Excel-blad dat u, elke keer dat u het opent, vertelt wat u altijd al wilde weten over uw computersysteem.

Merk op dat dit alleen werkt met de desktopversie van Excel, die u kunt krijgen met een gratis proefversie van Office 6 manieren om Microsoft Office te gebruiken zonder te betalen 6 manieren waarop u Microsoft Office kunt gebruiken zonder ervoor te betalen Heeft u Microsoft Office nodig?, maar hou je niet van het prijskaartje? We laten u gratis alternatieven zien, inclusief gratis proefversies en lichte of mobiele versies van de Microsoft Office-suite. Lees verder .

The Magic of WMI

Op elke computer met een Microsoft-besturingssysteem hebt u toegang tot een krachtige set extensies, Windows Management Instrumentation (WMI), die u een zeer krachtige en uitgebreide methode biedt voor toegang tot informatie en specificaties over uw computer, besturingssysteem 4 Easy Ways om te weten of u werkt met een 64-bits versie van Windows 4 Eenvoudige manieren om te weten of u werkt met een 64-bits Windows-versie Gebruikt u een processor die een 64-bits besturingssysteem ondersteunt en gebruikt u een 64-bits versie van Windows? -bit besturingssysteem? De gemiddelde gebruiker die op zoek is naar een pc weet waarschijnlijk niet de antwoorden op deze vragen, hoewel ze ... Lees meer moeten doen en geïnstalleerde software moeten installeren.

wmiwindows

Het beste van alles is dat de WMI toegankelijk is Hoe schrijf je een Windows-script om netwerkinstellingen te wijzigen On the Fly Een Windows-script schrijven om netwerkinstellingen te wijzigen On the Fly In veel kantoren of werkomgevingen moet je misschien je netwerkinstellingen opnieuw definiëren verbinden met verschillende netwerken. Ik vond mezelf vaak genoeg in deze situatie en raakte zo moe van het bladeren naar de ... Lees meer van programmeertalen zoals VBA Hoe je je eigen eenvoudige app kunt maken met VBA Hoe je je eigen eenvoudige app kunt maken met VBA Voor degenen met jij die echt dol zou zijn om je eigen applicatie te kunnen schrijven, maar nog nooit een enkele regel code hebt getypt, ik zal je helpen om je ... Lees meer, beschikbaar in bijna alle Microsoft Office-producten.

Uw geautomatiseerde spreadsheet instellen

Maak eerst uw nieuwe Excel-werkmap en noem het zoiets als MyComputerInfo. xlsm (macro ingeschakeld). Open het, sla Blad1 over en hernoem de volgende 11 bladzijden als volgt:

  • Netwerk
  • Logische
  • bewerker
  • Fysiek geheugen
  • Video Controller
  • OnBoardDevices
  • Besturingssysteem
  • Printer
  • Software
  • accounts
  • Diensten

Deze bevatten al uw computerdetails en worden telkens bijgewerkt wanneer u dit Excel-werkblad opent.

wmi1

Ga vervolgens naar het menu-item Ontwikkelaar en klik in het gedeelte Besturing op Code weergeven .

wmi2

Als u het menu-item Ontwikkelaar niet ziet, klikt u op Bestand> Opties> Lint aanpassen, wijzigt u de vervolgkeuzelijst Kies opdrachten in Alle tabbladen, selecteert u Ontwikkelaar en drukt u op de knop Toevoegen >> om deze toe te voegen aan de kant Aangepast lint. Zorg dat het selectievakje Ontwikkelaar aan die kant is geselecteerd nadat je het hebt toegevoegd.

wmi3

Als u eenmaal in de VBA-codebewerker bent Monitor Als uw VBA-apps worden uitgevoerd met deze Slick Script-monitor Als uw VBA-apps worden uitgevoerd met dit Slick-script Lees meer, hoeft u alleen de onderstaande scripts aan een module toe te voegen. Deze scripts zullen al het zware werk doen. U hoeft deze code niet zelf te schrijven, maar kopieert en plakt ze zoals hieronder getoond.

Als je klaar bent met het kopiëren en plakken van de code in de volgende sectie, hoef je alleen maar wat meer code toe te voegen om je bladen in te laden en je bent klaar.

Oké, klaar om te kopiëren en plakken? Laten we ernaar toe gaan.

Uw WMI-modules bouwen

De inspiratie voor deze code komt van een fantastische bron van Google Sites met de naam Beyond Excel. Het hier getoonde voorbeeld is een subroutine genaamd WMI (), die alle netwerkinformatie van uw computer doorgeeft aan het foutopsporingsgebied van de Excel-programmeeromgeving.

Natuurlijk doet het ons daar niet veel goeds, dus heb ik de code aangepast om in plaats daarvan alle details naar een van de bladen uit te voeren die je in de eerste stap van deze handleiding hebt gemaakt.

In het coderingsnavigatiegebied ziet u ook een sectie met de naam Modules en een component onder Module1 . Dubbelklik hierop om het te openen. Als u de map Modules niet ziet, vouw dan Insert uit in het menu en selecteer Module .

wmi5

Dit gebied is waar alle subroutines zullen zijn die WMI zullen gebruiken om alle belangrijke informatie over uw computer te verzamelen en deze in de door u gemaakte sheets te laden.

Plaats de volgende regels helemaal bovenaan het codevenster.

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 

Het zou er zo uit moeten zien als je klaar bent:

wmi5

Plak de volgende code in Module1 onder de regels die u zojuist hebt gemaakt:

 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 

U gaat nu een identieke functie creëren voor elk werkblad dat u in het eerste deel van deze handleiding hebt gemaakt, met enkele kleine verschillen.

Als u bijvoorbeeld die code hierboven kopieert voor NetworkWMI (), plak deze dan onder het einde van die code en vervang dan "NetworkWMI ()" door "LogicalDiskWMI ()"

Er zijn slechts enkele secties die u moet wijzigen, zodat deze code het juiste blad vult.

Verander dit:

 sWQL = "Select * From Win32_NetworkAdapterConfiguration" 

Hiernaar:

 sWQL = "Select * From Win32_LogicalDisk" 

Verander deze vier regels:

 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 

Hiernaar:

 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 

Wijzig deze twee regels:

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

Hiernaar:

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

En deze drie lijnen:

 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 

Hiernaar:

 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 

Nu ben je bijna klaar!

Herhaal het bovenstaande voor elk tabblad in uw werkmap. De functies zijn als volgt:

  • "ProcessorWMI ()" voor het blad "Processor".
  • "PhysicalMemWMI ()" voor het blad "Fysiek geheugen".
  • "VideoControlWMI ()" voor het blad "Video Controller".
  • "OnBoardWMI ()" voor het blad "OnBoard Devices".
  • "PrinterWMI ()" voor het blad "Printer".
  • "OperatingWMI ()" voor het blad Operating System.
  • "SoftwareWMI ()" voor het blad "Software".
  • "ServicesWMI ()" voor het blad "Services".

De speciale "Win32_" -objecten die u moet gebruiken om toegang tot deze informatie over uw computer te krijgen, zijn als volgt:

  • Win32_NetworkAdapterConfiguration - Al uw netwerkconfiguratie-instellingen
  • Win32_LogicalDisk - Schijven met capaciteiten en vrije ruimte.
  • Win32_Processor - CPU Specs
  • Win32_PhysicalMemoryArray - RAM / Geïnstalleerd geheugen
  • Win32_VideoController - Grafische adapter en instellingen
  • Win32_OnBoardDevice - Moederbord-apparaten
  • Win32_OperatingSystem - Welke versie van Windows met serienummer
  • WIn32_Printer - Geïnstalleerde printers
  • Win32_Product - Geïnstalleerde software
  • Win32_BaseService - Lijstservices die worden uitgevoerd (of gestopt) op elke pc, samen met het pad en de bestandsnaam van de service.

Voltooi het kopiëren / plakken en tweaken van elk van die functies in het Module1 gedeelte van de code. Als je klaar bent, ga je naar het volgende gedeelte van deze handleiding.

Vergeet niet om uw code op te slaan in de VB-weergave! Als u uw werkmap aanvankelijk hebt opgeslagen met het .xls- bestandstype, vraagt ​​Excel u nu om een ​​voor macro's geschikt bestandstype te gebruiken, zoals .xlsm .

De werkmap automatisch laden

Nu je al die krachtige functies hebt gemaakt, hoef je ze alleen nog maar uit te voeren als de werkmap is geopend. Dit doen is heel eenvoudig.

In de linker objectbrowser, onder Microsoft Excel Objects, zou u ThisWorkbook moeten zien. Dubbelklik op dat object om het te openen.

wmi6

Bovenaan het codegebied, zijn er twee vervolgkeuzelijsten, verander de linker naar werkmap en de rechter om te openen .

wmi7

U ziet een automatisch gegenereerde functie voor u genaamd Private Sub Workbook_Open () .

Typ hier de volgende coderegels zodat de functie er zo uitziet:

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

Elke keer dat u de werkmap opent, wordt elk van uw nieuwe functies opgeroepen, haalt u alle gegevens tevoorschijn Visualiseer uw gegevens & maak uw spreadsheets Gebruiksvriendelijk met een Excel-dashboard Visualiseer uw gegevens & maak uw spreadsheets Gebruiksvriendelijk met een Excel-dashboard Soms, een eenvoudig spreadsheetformaat is niet voldoende om uw gegevens toegankelijk te maken. Met een dashboard kunt u uw belangrijkste gegevens in een gemakkelijk te verwerken vorm presenteren. Lees Meer vanaf de computer en laad het in het juiste blad.

Om het in actie te zien, slaat u de code op, sluit u het codevenster, slaat u de werkmap op en sluit u die ook. Open het bestand dat u zojuist hebt gesloten opnieuw en u zult ontdekken dat elk afzonderlijk blad volumegegevens over uw computer bevat.

Omdat de werkmap macro's bevat, die om veiligheidsredenen kunnen worden uitgeschakeld, moet u mogelijk op Inhoud inschakelen boven aan het werkblad klikken om gegevens te verzamelen.

Waarschuwing - het verzamelt VEEL data, dus verwacht een paar minuten te wachten voordat het wordt geladen wanneer je het bestand voor het eerst opent.

Computerinformatie verzamelen

Het verbazingwekkende aan het gebruik van WMI hiervoor is dat de bovenstaande gegevens slechts het topje van de ijsberg vormen. Er zijn nog honderden WMI-klassen beschikbaar die informatie bevatten over elk aspect van uw computersysteem.

Als je avontuurlijk was en een stap verder wilde gaan, kon je het eerste blad van de werkmap omzetten in een dashboard Bouw je eigen weer-dashboard in deze Google-spreadsheet-hoofdklasse Bouw je eigen weer-dashboard in deze masterclass van Google Spreadsheet om van uw Google Drive-account een intelligent weeranalysesysteem te maken en een Star Trek-fantasie uit te leven? OK! Lees Meer en gebruik de gegevens van de andere bladen om dat dashboard te voeden.

Waar het om gaat is dat u met deze nieuwe tool meer informatie kunt verzamelen en weergeven dan de meeste IT-experts IT Knowledge Exchange - een gratis versie van Experts Exchange! IT Knowledge Exchange - Een gratis versie van Experts Exchange! Meer informatie is zelfs beschikbaar over een computersysteem en u kunt het doen in een fractie van de tijd die dezelfde experts besteden aan het doorzoeken van het controlepaneel en administratieve gebieden die naar die details op zoek zijn.

Zie je jezelf een tool als deze bouwen en gebruiken? Bent u een VBA-programmeur 4 geweldige websites om u een Visual Basic-goeroe te maken 4 Geweldige websites om u een Visual Basic-goeroe te maken Wilt u Visual Basic leren? Hier zijn enkele geweldige bronnen om u op weg te helpen. Meer lezen en heeft u ooit WMI-klassen gebruikt? Deel uw eigen ervaringen en ideeën in de opmerkingen hieronder!

Afbeeldingscredits: Adriano Castelli via Shutterstock.com, Mclek via Shutterstock

In this article