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

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

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? Hier zijn enkele manieren waarop u Microsoft Office gratis kunt gebruiken! 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 off-en-on PC-gebruiker weet waarschijnlijk niet de antwoorden op deze vragen, hoewel ze ... Lees meer en geïnstalleerde software moeten hebben.

Het beste van alles is dat de WMI toegankelijk is. Hoe een Windows-script te schrijven om netwerkinstellingen te wijzigen On the Fly Hoe een Windows-script te schrijven om netwerkinstellingen te wijzigen On the Fly In veel kantoren of werkomgevingen moet u mogelijk uw 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 onder u die zou het geweldig vinden om je eigen applicatie te kunnen schrijven, maar ik heb nog nooit eerder een regel code 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.

Ga vervolgens naar de Ontwikkelaar menuoptie en onder de controls sectie klik Bekijk code.

Als u het menu-item Ontwikkelaar niet ziet, klikt u op Bestand> Opties> Lint aanpassen, verander de Kies opdrachten van dropdown naar Alle tabbladen, kiezen Ontwikkelaar en druk op de toevoegen >> om het toe te voegen aan de kant Aangepast Ribbon. Zorg dat het selectievakje Ontwikkelaar aan die kant is geselecteerd nadat je het hebt toegevoegd.

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 u klaar bent met kopiëren en plakken met de code in het volgende gedeelte, hoeft u alleen nog een beetje meer code toe te voegen om uw bladen te laden en bent u 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 ik heb 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 gedeelte met de naam modules en een component onder geroepen Module 1. Dubbelklik hierop om het te openen. Als u de map Modules niet ziet, vouwt u uit invoegen uit het menu en selecteer module.

Dit gebied is waar alle subprogramma's 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:

Pasta de volgende code in Module1 onder de regels die je net hebt gemaakt:

Sub NetworkWMI () sWQL = "Selecteer * Van Win32_NetworkAdapterConfiguration" Set oWMISrvEx = GetObject ("winmgmts: root / CIMV2") Stel oWMIObjSet = oWMISrvEx.ExecQuery (sWQL) in intRow = 2 strRow = Str (intRow) ThisWorkbook.Sheets ("Netwerk" ) .Range ("A1"). Value = "Name" ThisWorkbook.Sheets ("Network"). Cells (1, 1) .Font.Bold = True ThisWorkbook.Sheets ("Network"). Range ("B1") .Value = "Waarde" ThisWorkbook.Sheets ("Netwerk"). Cellen (1, 2) .Font.Bold = Waar voor elke oWMIObjEx in oWMIObjSet voor elke 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 (" Netwerk "). Bereik (" A "& Trim (strRow)). Waarde = oWMIProp.Name ThisWorkbook.Sheets (" Netwerk "). Bereik (" B "& Trim (strRow)). Waarde = oWMIProp.Value (n) ThisWorkbook.Sheets ("Network"). Range ("B" & Trim (strRow)) HorizontalAlignment = xlLeft intRow = intRow + 1 strRow = Str (intRow) Volgende andere ThisW orkbook.Sheets ("Netwerk"). Bereik ("A" & Trim (strRow)). Waarde = oWMIProp.Name ThisWorkbook.Sheets ("Netwerk"). Bereik ("B" & Trim (strRow)). Waarde = oWMIProp .Waarde ThisWorkbook.Sheets ("Netwerk"). Bereik ("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.

Bijvoorbeeld, dan zou je die code hierboven kopiëren voor NetworkWMI (), plak het onder het einde van die code en vervang het “NetworkWMI ()” met “LogicalDiskWMI ()”

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

Verander dit:

sWQL = "Selecteer * Van Win32_NetworkAdapterConfiguration" 

Hiernaar:

sWQL = "Selecteer * Van Win32_LogicalDisk" 

Verander deze vier regels:

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

Hiernaar:

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

Wijzig deze twee regels:

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

Hiernaar:

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

En deze drie lijnen:

ThisWorkbook.Sheets ("Network"). Range ("A" & Trim (strRow)). Value = oWMIProp.Name ThisWorkbook.Sheets ("Network"). Bereik ("B" & Trim (strRow)). Waarde = oWMIProp .Value ThisWorkbook.Sheets ("Network"). Bereik ("B" & Trim (strRow)). Horizontale uitlijning = xlLeft 

Hiernaar:

ThisWorkbook.Sheets ("LogicalDisk"). Bereik ("A" & Trim (strRow)). Waarde = oWMIProp.Name ThisWorkbook.Sheets ("LogicalDisk"). Bereik ("B" & Trim (strRow)). Waarde = oWMIProp .Waarde ThisWorkbook.Sheets ("LogicalDisk"). Bereik ("B" & Trim (strRow)). Horizontale uitlijning = xlLeft 

Nu ben je bijna klaar!

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

  • “ProcessorWMI ()” voor de “bewerker” vel.
  • “PhysicalMemWMI ()” voor de “Fysiek geheugen” vel.
  • “VideoControlWMI ()” voor de “Video Controller” vel.
  • “OnBoardWMI ()” voor de “OnBoardDevices” vel.
  • “PrinterWMI ()” voor de “Printer” vel.
  • “OperatingWMI ()” voor het blad Operating System.
  • “SoftwareWMI ()” voor de “Software” vel.
  • “ServicesWMI ()” voor de “Diensten” vel.

De speciale “Win32_” objecten die u moet gebruiken om toegang te krijgen tot deze informatie over uw computer 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 de Module 1 deel 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 in eerste instantie hebt opgeslagen met de .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-objecten, Je zou moeten zien ThisWorkbook. Dubbelklik op dat object om het te openen.

Bovenaan het codegebied, zijn er twee vervolgkeuzelijsten, verander de linker naar Werkboek en de juiste om Open.

Je ziet een functie die automatisch wordt gegenereerd wanneer je belt Private Sub Workbook_Open ().

Typ hierbinnen de volgende regels code dus de functie ziet er zo uit:

Privé subwerkmap_Open () NetworkWMI LogicalDiskWMI-processorWMI PhysicalMemWMI VideoControlWMI OnBoardWMI-printerWMI-softwareWMI-werkingWMI-servicesWMI-eind Sub 

Elke keer dat u de werkmap opent, wordt elk van uw nieuw gecreëerde 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 klikken Zet inhoud aan aan de bovenkant van het blad voor het verzamelen van gegevens.

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! Read More is zelfs realistisch over een computersysteem, en je zult het kunnen doen in een fractie van de tijd die dezelfde experts besteden aan het doorzoeken van het controlepaneel en administratieve gebieden die op zoek zijn naar die details.

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 hebt 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

Meer informatie over: Computeronderhoud, Microsoft Excel, Visual Basic-programmering.