Så här ser du all din datorinformation med ett enkelt Excel VBA-script
Har du någonsin fått veta datorns CPU eller minnesinformation, serienummer eller modellnummer eller installerade programvaruversioner, men var inte säker på var du ska titta? Med bara lite enkel kod i Excel kan du extrahera ett helt bibliotek med din Windows PC-information. Hade du den PC du beställde? Ta reda på de här systeminformationsverktygen [Windows] Hade du den dator du beställde? Ta reda på de här systeminformationsverktygen [Windows] Har du nyligen köpt en dator? Om ja, var det anpassat? Genom anpassad menar jag att den är sammansatt av en lokal datorbutik, eller ens av någon du vet som bygger och säljer datorer. Om du ... Läs mer .
Låter för bra för att vara sant? Jo, det är Windows, om du vet hur du använder den.
Du kan behöva få händerna lite smutsiga, men i den här artikeln ger vi dig all kod du behöver, och hur du lägger den in i Excel och får den att fungera. När du är klar har du ett Excel-ark som varje gång du öppnar det, berättar allt du någonsin ville veta om ditt datorsystem.
Observera att detta endast fungerar med skrivbordsversionen av Excel, som du kan få med en kostnadsfri provversion av Office 6-sätt som du kan använda Microsoft Office utan att betala för det 6 sätt du kan använda Microsoft Office utan att betala för det Behöver du Microsoft Office men gillar inte prislappen? Här är några sätt du kan använda Microsoft Office gratis! Läs mer .
The Magic of WMI
På vilken som helst dator som kör ett Microsoft-operativsystem har du tillgång till en kraftfull uppsättning tillägg som heter Windows Management Instrumentation (WMI), vilket ger dig en mycket kraftfull och omfattande metod för att få tillgång till information och specifikationer om datorn, operativsystemet 4 Easy Ways att veta om du är på en 64-bitars version av Windows 4 enkla sätt att veta om du har en 64-bitars version av Windows Använder du en processor som stöder ett 64-bitars operativsystem och kör 64 -bit operativsystem? Den genomsnittliga PC-användaren vet antagligen inte svaren på dessa frågor, även om de borde ... Läs mer och installerad programvara.
Bäst av allt är WMI tillgängligt. Så här skriver du ett Windows-skript för att ändra nätverksinställningar på flyget. Så här skriver du ett Windows-skript för att ändra nätverksinställningar på flyget. I många kontor eller arbetsmiljöer kanske du behöver omdefiniera dina nätverksinställningar till ansluta till olika nätverk. Jag befann mig i denna situation ofta nog och blev så trött på att bläddra till ... Läs mer från programmeringsspråk som VBA Hur du kan göra din egen enkla app med VBA Hur du kan göra din egen enkla app med VBA För er som skulle verkligen älska att kunna skriva din egen ansökan, men har aldrig skrivit en enda kod kod innan jag kommer att gå igenom dig genom att göra din mycket ... Läs mer, tillgänglig i nästan alla Microsoft Office-produkter.
Konfigurera ditt automatiska kalkylblad
Först, skapa din nya Excel-arbetsbok och kalla den något liknande MyComputerInfo.xlsm (Makroaktiverad). Öppna den, hoppa över Ark1 och byt namn på de följande 11 arken enligt följande:
- Nätverk
- LogicalDisk
- processor
- Fysiskt minne
- Video Controller
- OnBoardDevices
- Operativ system
- Skrivare
- programvara
- konton
- tjänster
Dessa kommer att hålla alla dina datoruppgifter och kommer att uppdateras varje gång du öppnar detta Excel-kalkylblad.
Gå sedan till Utvecklare menyalternativ och under kontroller Klicka på avsnittet Visa kod.
Om du inte ser menyalternativet Utvecklare klickar du på Fil> Alternativ> Skräddarsy bandet, ändra Välj kommandon från dropdown till Alla flikar, Välj Utvecklare och tryck på Lägg till >> knappen för att lägga till den till skräddarsydda band sidan. Se till att kryssrutan Utvecklare på den sidan är vald när du har lagt till den.
När du är inne i VBA-kodredigeraren Övervaka om dina VBA-program körs med den här slickskriptmonitorn Om dina VBA-program körs med detta slick-skript Läs mer, allt du behöver göra är att lägga till skripten nedan till en modul. Dessa skript kommer att göra allt tungt lyft. Du behöver inte skriva den här koden själv, bara kopiera och klistra in dem som visas nedan.
När du är klar med att kopiera och klistra in med koden i nästa avsnitt, behöver du bara lägga till lite mer kod för att ladda upp dina ark, och du är klar.
Okej, redo att kopiera och klistra in? Låt oss ta itu med det.
Bygga dina WMI-moduler
Inspirationen för den här koden kommer från en fantastisk Google Sites-resurs som heter Beyond Excel. Exemplet som visas där är en subrutin som heter WMI (), som skickar hela datorns nätverksinformation till felsökningsområdet för Excel-programmeringsmiljön.
Självklart gör det inte oss mycket bra där, så jag har ändrat koden för att istället skriva ut alla detaljer till ett av de lakan du skapade i det första steget i den här guiden.
I det kodande navigeringsområdet ser du också ett avsnitt som heter moduler och en komponent under kallad Module1. Dubbelklicka på den här för att öppna den. Om du inte ser mappen Moduler, expandera Föra in från menyn och välj Modul.
Det här området är där alla subrutiner kommer att användas som använder WMI för att dra all viktig information om datorn och ladda den i arken du skapade.
Placera de följande raderna längst upp i kodfönstret i sig själv.
Offentlig oWMISrvEx som objekt "SWbemServicesEx Offentlig oWMIObjSet som objekt" SWbemServicesObjectSet Offentligt oWMIObjEx som objekt "SWbemObjectEx Offentlig oWMIProp som objekt" SWbemProperty Offentlig sWQL som sträng "WQL-uttalande Offentlig n
Det ska se ut så här när du är klar:
Klistra följande kod in i modul1 under de linjer du just skapat:
Sub NetworkWMI () sWQL = "Välj * Från Win32_NetworkAdapterConfiguration" Ange oWMISrvEx = GetObject ("winmgmts: root / CIMV2") Ange oWMIObjSet = oWMISrvEx.ExecQuery (sWQL) intRow = 2 strRow = Str (intRow) ThisWorkbookSheets ) .Range ("A1"). Värde = "Namn" ThisWorkbookSheets ("Network"). Celler (1, 1) .Font.Bold = Sann ThisWorkbookSheets ("Network"). .Value = "Value" ThisWorkbookSheets ("Network") .Celler (1, 2) .Font.Bold = True för varje oWMIObjEx i oWMIObjSet för varje oWMIProp i oWMIObjEx.Properties_ Om inte IsNull (oWMIProp.Value) (oWMIProp.Value) Sedan För n = LBound (oWMIProp.Value) Till UBound (oWMIProp.Value) Debug.Print oWMIProp.Name & "(" & n & ")", oWMIProp.Value (n) ThisWorkbook.Sheets (" Nätverk "). Räckvidd (" A "& Trim (strRow)). Värde = oWMIProp.Name ThisWorkbookSheets (" Network "). Räckvidd (" B "& Trim (strRow)). Värde = oWMIProp.Value ThisWorkbook.Sheets ("Network"). Område ("B" & Trim (strRow)). HorizontalAlignment = xlLeft intRow = intRow + 1 strRow = Str (intRow) Nästa Else ThisW orkbook.Sheets ("Network"). Område ("A" & Trim (strRow)). Värde = oWMIProp.Name ThisWorkbookSheets ("Network"). Räckvidd ("B" & Trim (strRow)). Värde = oWMIProp .Value ThisWorkbook.Sheets ("Network"). Område ("B" & Trim (strRow)). HorizontalAlignment = xlLeft intRow = intRow + 1 strRow = Str (intRow)
Nu ska du skapa en identisk funktion för detta för varje ark du skapade i den första delen av den här guiden med några mindre skillnader.
Till exempel, nästa skulle du kopiera den här koden ovan för NetworkWMI (), klistra in den under slutet av den koden och ersätt sedan “NetworkWMI ()” med “LogicalDiskWMI ()”
Det är bara några avsnitt du behöver ändra så att den här koden fyller i rätt blad.
Ändra detta:
sWQL = "Välj * Från Win32_NetworkAdapterConfiguration"
Till detta:
sWQL = "Välj * Från Win32_LogicalDisk"
Ändra dessa fyra rader:
ThisWorkbook.Sheets ("Network"). Räckvidd ("A1"). Värde = "Namn" ThisWorkbookSheets ("Network"). Celler (1, 1) .Font.Bold = Sann ThisWorkbookSheets ("Network") .Range ("B1"). Värde = "Värde" ThisWorkbook.Sheets ("Network"). Celler (1, 2) .Font.Bold = Sann
Till detta:
ThisWorkbook.Sheets ("LogicalDisk"). Område ("A1"). Värde = "Namn" ThisWorkbookSheets ("LogicalDisk"). Celler (1, 1) .Font.Bold = Sann ThisWorkbookSheets ("LogicalDisk") .Range ("B1"). Värde = "Värde" ThisWorkbook.Sheets ("LogicalDisk"). Celler (1, 2) .Font.Bold = Sann
Ändra dessa två rader:
ThisWorkbookSheets ("Network"). Område ("A" & Trim (strRow)). Värde = oWMIProp.Name ThisWorkbookSheets ("Network"). .value (n)
Till detta:
ThisWorkbook.Sheets ("LogicalDisk"). Område ("A" & Trim (strRow)). Värde = oWMIProp.Name ThisWorkbookSheets ("LogicalDisk"). .value (n)
Och dessa tre rader:
ThisWorkbookSheets ("Network"). Område ("A" & Trim (strRow)). Värde = oWMIProp.Name ThisWorkbookSheets ("Network"). .Value ThisWorkbook.Sheets ("Network"). Räckvidd ("B" & Trim (strRow)). HorizontalAlignment = xlLeft
Till detta:
ThisWorkbook.Sheets ("LogicalDisk"). Område ("A" & Trim (strRow)). Värde = oWMIProp.Name ThisWorkbookSheets ("LogicalDisk"). .Value ThisWorkbook.Sheets ("LogicalDisk"). Räckvidd ("B" & Trim (strRow)). HorizontalAlignment = xlLeft
Nu är du nästan klar!
Upprepa ovanstående för varje flik i din arbetsbok. Funktionerna kommer att vara enligt följande:
- “ProcessorWMI ()” för “processor” ark.
- “PhysicalMemWMI ()” för “Fysiskt minne” ark.
- “VideoControlWMI ()” för “Video Controller” ark.
- “OnBoardWMI ()” för “OnBoardDevices” ark.
- “PrinterWMI ()” för “Skrivare” ark.
- “OperatingWMI ()” för operativsystemarket.
- “SoftwareWMI ()” för “programvara” ark.
- “ServicesWMI ()” för “tjänster” ark.
Den speciella “Win32_” Objekt som du behöver använda för att komma åt denna information om datorn är som följer:
- Win32_NetworkAdapterConfiguration - Alla dina nätverkskonfigurationsinställningar
- Win32_LogicalDisk - diskar med kapacitet och ledigt utrymme.
- Win32_Processor - CPU Specs
- Win32_PhysicalMemoryArray - RAM / Installerat minnesstorlek
- Win32_VideoController - Grafikkort och inställningar
- Win32_OnBoardDevice - Moderkortenheter
- Win32_OperatingSystem - Vilken version av Windows med serienummer
- WIn32_Printer - Installerade skrivare
- Win32_Product - Installerad programvara
- Win32_BaseService - Lista tjänster som körs (eller stoppas) på en PC tillsammans med tjänstens sökväg och filnamn.
Avsluta kopiering / klistra in och tweaking alla dessa funktioner i Module1 område av koden. När du är klar gå vidare till nästa avsnitt i den här guiden.
Kom ihåg att spara din kod i VB-vyn! Om du ursprungligen sparade din arbetsbok med .xls filtyp, kommer Excel nu att be dig att använda en Macro-aktiverad filtyp, till exempel .xlsm.
Laddar automatiskt arbetsboken
Nu när du har alla dessa kraftfulla funktioner skapade, är allt som finns kvar att köra dem varje gång arbetsboken öppnas. Att göra detta är väldigt lätt.
I den vänstra objektwebbläsaren, under Microsoft Excel-objekt, du borde se ThisWorkbook. Dubbelklicka på det objektet för att öppna det.
Överst i kodområdet finns det två listrutor, ändra vänster till arbetsbok och den rätta till Öppna.
Du får se en funktion som genereras automatiskt för dig som heter Privat Sub Workbook_Open ().
Inåt här skriver du in följande kodkod så ser funktionen ut så här:
Privat Sub Workbook_Open () NetworkWMI LogicalDiskWMI ProcessorWMI PhysicalMemWMI VideoControlWMI OnBoardWMI SkrivareWMI SoftwareWMI OperatingWMI ServicesWMI End Sub
Nu varje gång du öppnar arbetsboken kommer alla dina nyskapade funktioner att ringas, dra alla data Visualisera dina data och göra dina kalkylblad Användarvänliga med en Excel Dashboard Visualisera dina data och gör dina kalkylblad användarvänliga med en Excel Dashboard Ibland , ett enkelt kalkylarkformat är inte engagerande för att göra dina data tillgängliga. En instrumentpanel gör att du kan presentera dina viktigaste data i ett lätt att smälta format. Läs mer från datorn och lägg den i lämpligt ark.
För att se den i åtgärd, spara koden, stäng kodfönstret, spara arbetsboken och stäng den också. Öppna filen som du stängde just nu, och du kommer att upptäcka att varje ark innehåller datamängder om din dator.
Eftersom arbetsboken innehåller makron, som kan inaktiveras av säkerhetsskäl, kan du behöva klicka Aktivera innehåll längst upp på arket för att data ska samlas in.
Varning - det samlar in en hel del data, förvänta dig att vänta några minuter innan den laddas när du först öppnar filen.
Samla in datorinformation
Det fantastiska med att använda WMI för detta är att data ovan bara är toppen av isberget. Det finns hundratals fler WMI-klasser tillgängliga som innehåller information om alla aspekter av ditt datorsystem.
Om du var äventyrlig och ville ta det här ett steg längre, kan du vrida det första arket i arbetsboken i en instrumentpanel. Bygg ditt eget väderpanel i den här Google-kalkylarkmästarklassen. Skapa ditt eget väderpanel i den här Google-kalkylarkmästarklassen. Vill du ha det? för att konvertera ditt Google Drive-konto till ett intelligent väderanalyssystem och leva ut en Star Trek-fantasi? Ok! Läs mer och använd data från de andra arken för att mata den instrumentpanelen.
Utgångspunkten är att med hjälp av det här nya verktyget kan du samla in och visa mer information än de flesta IT-experter. IT Knowledge Exchange - En gratis version av Experts Exchange! IT Knowledge Exchange - En gratis version av Experts Exchange! Läs mer, även om insikten är tillgänglig om ett datorsystem, och du kommer att kunna göra det på en bråkdel av tiden som samma experter spenderar genom att gräva igenom kontrollpanelen och administrativa områden som söker efter dessa detaljer.
Ser du själv bygga och använda ett verktyg som detta? Är du en VBA-programmerare 4 Stora webbplatser som gör dig till en Visual Basic Guru 4 Bra webbplatser för att göra dig till en Visual Basic Guru Vill du lära dig Visual Basic? Här är några bra resurser för att komma igång. Läs mer och har du någonsin använt WMI-klasser? Dela dina egna erfarenheter och idéer i kommentarfältet nedan!
Bildkrediter: Adriano Castelli via Shutterstock.com, Mclek via Shutterstock
Utforska mer om: Datorunderhåll, Microsoft Excel, Visual Basic Programmering.