tft每日頭條

 > 生活

 > vba怎麼計算數據

vba怎麼計算數據

生活 更新时间:2024-09-15 03:21:31

計算機信息是一個固定的内容,編程過程中會經常提取計算機信息來進行處理,本節介紹一下如何利用VBA來進行提取計算機信息。

vba怎麼計算數據(如何獲取計算機硬件信息)1

本示例基于Windows操作系統,蘋果或Linux系統并不适用,一定分清楚。

下圖為提取後的表格,簡單舉例三個信息,分别是CPU序列号,硬盤信息和網卡MAC地址。

vba怎麼計算數據(如何獲取計算機硬件信息)2

根據新建一個GetObject("Winmgmts:")對象來對操作系統進行信息提取。

它是基于windows系統的系統管理工具WMI。

什麼是WMI 呢?

全稱為Windows管理規範,英文(Windows Management Instrumentation)

它是一項核心的 Windows 管理技術,用戶可以使用 WMI 管理本地和遠程計算機。

總之就是用來管理計算機的一個工具,既然是管理計算機的,那它對計算機有十足的了解,所以我們要通過WMI來獲取計算機信息就找對了。

vba怎麼計算數據(如何獲取計算機硬件信息)3

下面來看具體代碼,一定要收藏。

獲取CPU序列号函數:

Public Function GetCpu() 'CPU序列号 Dim cpuInfo, Soi, So, s As Integer, cpuArr() cpuInfo = "" Set Soi = GetObject("Winmgmts:").InstancesOf("Win32_Processor") For Each So In Soi cpuInfo = CStr(So.ProcessorId) ReDim Preserve cpuArr(s) cpuArr(s) = cpuInfo s = s 1 Next If Not VBA.IsArray(cpuArr) Then ReDim cpuArr(0) cpuArr(0) = "" End If GetCpu = cpuArr End Function

獲取硬盤信息函數

Function getHde() As String '硬盤信息 Dim HDid, moc, mo Set moc = GetObject("Winmgmts:").InstancesOf("Win32_DiskDrive") For Each mo In moc HDid = HDid & mo.Model & VBA.vbCrLf Next getHde = VBA.Mid(HDid, 1, VBA.Len(HDid) - 1) End Function

獲取網卡MAC地址函數:

Function getMAC() As String '網卡地址 Dim Wap, MAC Set Wap = GetObject("Winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration") For Each MAC In Wap If MAC.IPEnabled = True Then getMAC = MAC.MacAddress Exit For End If Next End Function

以上函數都可以獨立調用,調用方法如下:

Private Sub CommandButton1_Click() Dim r As Range Set r = Range("D2") With r .Value = GetCpu .Offset(1, 0).Value = getHde .Offset(2, 0).Value = getMAC End With End Sub

重點說一點,如果使用的時候沒有返回任何正确信息,或者有報錯提示,那麼有兩個可能。

一是計算機系統版本不同,由于不同時期的操作系統WMI也會有不同,所以找不到硬件信息。

二是WMI 服務最好啟動,服務名為“winmgmt”。啟動方法 DOS環境下 執行 net start winmgmt 命令重啟。停止 WMI 服務使用:winmgmt /kill 或 net stop winmgmt ,最好不要停止服務。

如果想獲取更多計算機信息可參考WMI對象使用方法,不過似乎就脫離了Excel VBA内容了。

歡迎關注、收藏


END

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved