Computer >> Máy Tính >  >> Xử lý sự cố >> bảo trì máy tính

Cách xem tất cả thông tin máy tính của bạn bằng tập lệnh VBA trong Excel đơn giản

Bạn đã bao giờ cần biết thông tin chi tiết về CPU hoặc bộ nhớ, số sê-ri hoặc kiểu máy, hoặc các phiên bản phần mềm đã cài đặt của máy tính, nhưng không biết phải tìm ở đâu? Chỉ với một chút mã đơn giản trong Excel, bạn có thể trích xuất toàn bộ thư viện thông tin PC Windows của mình.

sao mà tin được? Đó là Windows, nếu bạn biết cách sử dụng nó.

Bạn có thể cần phải làm bẩn tay một chút, nhưng trong bài viết này, chúng tôi sẽ cung cấp cho bạn tất cả mã bạn cần và cách đưa nó vào Excel và làm cho nó hoạt động. Sau khi hoàn tất, bạn sẽ có một trang tính Excel, mỗi khi bạn mở nó, sẽ cho bạn biết mọi thứ bạn từng muốn biết về hệ thống máy tính của mình.

Lưu ý rằng điều này sẽ chỉ hoạt động với phiên bản Excel trên máy tính mà bạn có thể nhận được khi dùng thử Office miễn phí.

Điều kỳ diệu của WMI

Trên bất kỳ máy tính nào chạy hệ điều hành Microsoft, bạn có quyền truy cập vào một tập hợp các tiện ích mở rộng mạnh mẽ có tên là Windows Management Instrumentation (WMI), cung cấp cho bạn một phương pháp rất mạnh mẽ và rộng rãi để truy cập thông tin và thông số kỹ thuật về máy tính, hệ điều hành và cài đặt của bạn. phần mềm.

Cách xem tất cả thông tin máy tính của bạn bằng tập lệnh VBA trong Excel đơn giản

Hơn hết, WMI có thể truy cập được từ các ngôn ngữ lập trình như VBA, có sẵn trong hầu hết các sản phẩm Microsoft Office.

Thiết lập bảng tính tự động của bạn

Trước tiên, hãy tạo sổ làm việc Excel mới của bạn và gọi nó là MyComputerInfo. xlsm (Đã bật macro). Mở nó lên, bỏ qua Sheet1 và đổi tên 11 sheet tiếp theo như sau:

  • Mạng
  • LogicalDisk
  • Bộ xử lý
  • Bộ nhớ Vật lý
  • Bộ điều khiển video
  • OnBoardDevices
  • Hệ điều hành
  • Máy in
  • Phần mềm
  • Tài khoản
  • Dịch vụ

Những điều này sẽ lưu giữ tất cả các chi tiết máy tính của bạn và sẽ được cập nhật mỗi khi bạn mở bảng tính Excel này.

Cách xem tất cả thông tin máy tính của bạn bằng tập lệnh VBA trong Excel đơn giản

Tiếp theo, chuyển đến Nhà phát triển mục menu và trong Điều khiển nhấp vào phần Xem mã .

Cách xem tất cả thông tin máy tính của bạn bằng tập lệnh VBA trong Excel đơn giản

Nếu bạn không thấy mục trình đơn Nhà phát triển, hãy nhấp vào Tệp> Tùy chọn> Tùy chỉnh ruy-băng , thay đổi Chọn lệnh từ thả xuống Tất cả các tab , chọn Nhà phát triển và nhấn nút Thêm>> để thêm nó vào bên Ruy-băng tùy chỉnh. Đảm bảo rằng hộp kiểm Nhà phát triển ở bên đó được chọn sau khi bạn đã thêm nó.

Cách xem tất cả thông tin máy tính của bạn bằng tập lệnh VBA trong Excel đơn giản

Khi bạn đã ở bên trong trình soạn thảo mã VBA, tất cả những gì bạn phải làm là thêm các tập lệnh bên dưới vào một mô-đun. Các tập lệnh này sẽ thực hiện tất cả các công việc nặng nhọc. Bạn không phải tự viết mã này, chỉ cần sao chép và dán chúng vào như hình dưới đây.

Khi bạn đã hoàn tất việc sao chép và dán bằng mã trong phần tiếp theo, tất cả những gì bạn phải làm là thêm một chút mã nữa để tải trang tính của mình và bạn đã hoàn tất.

Được rồi, đã sẵn sàng để sao chép và dán chưa? Hãy bắt đầu.

Xây dựng Mô-đun WMI của bạn

Nguồn cảm hứng cho mã này đến từ một tài nguyên tuyệt vời của Google Sites có tên là Beyond Excel. Ví dụ minh họa có một chương trình con được gọi là WMI (), chương trình này chuyển tất cả thông tin mạng của máy tính của bạn đến vùng gỡ lỗi của môi trường lập trình Excel.

Tất nhiên, nó không giúp chúng tôi tốt ở đó, vì vậy tôi đã sửa đổi mã để thay vào đó xuất tất cả các chi tiết vào một trong các trang tính mà bạn đã tạo trong bước đầu tiên của hướng dẫn này.

Trong khu vực điều hướng mã hóa, bạn cũng sẽ thấy một phần có tên là Mô-đun và một thành phần có tên là Module1 . Nhấp đúp vào cái này để mở nó. Nếu bạn không thấy thư mục Mô-đun, hãy mở rộng Chèn từ trình đơn và chọn Mô-đun .

Cách xem tất cả thông tin máy tính của bạn bằng tập lệnh VBA trong Excel đơn giản

Khu vực này là nơi tất cả các chương trình con sẽ sử dụng WMI để lấy tất cả thông tin quan trọng về máy tính của bạn và tải nó vào các trang tính mà bạn đã tạo.

Đặt tất cả các dòng sau ở đầu cửa sổ mã.

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

Nó sẽ giống như thế này khi bạn hoàn thành:

Cách xem tất cả thông tin máy tính của bạn bằng tập lệnh VBA trong Excel đơn giản

Dán mã sau vào Module1 bên dưới các dòng bạn vừa tạo:

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

Bây giờ, bạn sẽ tạo một hàm giống hệt với hàm này cho mọi trang tính bạn đã tạo trong phần đầu tiên của hướng dẫn này với một số khác biệt nhỏ.

Ví dụ:tiếp theo, bạn sẽ sao chép mã đó ở trên cho NetworkWMI () , hãy dán nó bên dưới phần cuối của mã đó, rồi thay thế "NetworkWMI ()" bằng "LogicalDiskWMI ()"

Bạn chỉ cần thay đổi một số phần để mã này điền vào đúng trang tính.

Thay đổi điều này:

sWQL = "Select * From Win32_NetworkAdapterConfiguration"

Về điều này:

sWQL = "Select * From Win32_LogicalDisk"

Thay đổi bốn dòng sau:

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

Về điều này:

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

Thay đổi hai dòng sau:

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

Về điều này:

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

Và ba dòng sau:

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

Về điều này:

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

Bây giờ, bạn sắp hoàn thành!

Lặp lại các bước trên cho mọi tab trong sổ làm việc của bạn. Các chức năng sẽ như sau:

  • "ProcessorWMI ()" cho trang "Processor".
  • "PhysicalMemWMI ()" cho trang "Bộ nhớ Vật lý".
  • "VideoControlWMI ()" cho trang "Bộ điều khiển Video".
  • "OnBoardWMI ()" cho trang tính "OnBoardDevices".
  • "PrinterWMI ()" cho trang tính "Máy in".
  • "OperatingWMI ()" cho trang Hệ điều hành.
  • "SoftwareWMI ()" cho trang "Phần mềm".
  • "ServicesWMI ()" cho trang "Dịch vụ".

Các đối tượng "Win32_" đặc biệt mà bạn cần sử dụng để truy cập thông tin này về máy tính của mình như sau:

  • Win32_NetworkAdapterConfiguration - Tất cả cài đặt cấu hình mạng của bạn
  • Win32_LogicalDisk - Đĩa có dung lượng và dung lượng trống.
  • Win32_Processor - Thông số CPU
  • Win32_PhysicalMemoryArray - Dung lượng RAM / Bộ nhớ đã cài đặt
  • Win32_VideoController - Bộ điều hợp và cài đặt đồ họa
  • Win32_OnBoardDevice - Thiết bị bo mạch chủ
  • Win32_OperatingSystem - Phiên bản Windows có Số sê-ri nào
  • WIn32_Printer - Máy in đã cài đặt
  • Win32_Product - Phần mềm đã Cài đặt
  • Win32_BaseService - Liệt kê các dịch vụ đang chạy (hoặc đã dừng) trên bất kỳ PC nào cùng với đường dẫn và tên tệp của dịch vụ.

Hoàn tất sao chép / dán và tinh chỉnh từng chức năng đó trong Mô-đun1 vùng của mã. Khi bạn hoàn tất, hãy chuyển sang phần tiếp theo của hướng dẫn này.

Hãy nhớ lưu mã của bạn trong chế độ xem VB! Nếu ban đầu bạn đã lưu sổ làm việc của mình bằng .xls loại tệp, Excel sẽ yêu cầu bạn sử dụng loại tệp hỗ trợ Macro, chẳng hạn như .xlsm .

Tự động Tải Sổ Làm việc

Bây giờ bạn đã tạo tất cả các chức năng mạnh mẽ đó, tất cả những gì còn lại là chạy chúng mỗi khi mở sổ làm việc. Làm điều này thực sự dễ dàng.

Trong trình duyệt đối tượng bên trái, trong Đối tượng Microsoft Excel , bạn sẽ thấy ThisWorkbook . Nhấp đúp vào đối tượng đó để mở.

Cách xem tất cả thông tin máy tính của bạn bằng tập lệnh VBA trong Excel đơn giản

Ở đầu vùng mã, có hai hộp thả xuống, hãy đổi hộp bên trái thành Workbook và đúng cách để Mở .

Cách xem tất cả thông tin máy tính của bạn bằng tập lệnh VBA trong Excel đơn giản

Bạn sẽ thấy một chức năng được tạo tự động cho bạn có tên là Private Sub Workbook_Open () .

Bên trong đây, hãy nhập dòng mã sau vì vậy hàm trông như thế này:

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

Bây giờ, mỗi khi bạn mở sổ làm việc, mỗi hàm mới được tạo của bạn sẽ được gọi, kéo tất cả dữ liệu từ máy tính và tải nó vào trang tính thích hợp.

Để xem nó hoạt động, hãy lưu mã, đóng cửa sổ mã, lưu sổ làm việc và cũng đóng cửa sổ đó. Mở lại tệp bạn vừa đóng và bạn sẽ phát hiện ra rằng mỗi trang tính đều chứa lượng dữ liệu về máy tính của bạn.

Vì sổ làm việc chứa Macro, có thể bị vô hiệu hóa vì lý do bảo mật, bạn có thể phải nhấp vào Bật nội dung ở đầu trang để dữ liệu được thu thập.

Cảnh báo - nó thu thập RẤT NHIỀU dữ liệu, vì vậy hãy đợi vài phút để tải khi bạn mở tệp lần đầu tiên.

Thu thập Thông tin Máy tính

Điều tuyệt vời khi sử dụng WMI cho việc này là dữ liệu trên chỉ là phần nổi của tảng băng chìm. Có hàng trăm lớp WMI khác có sẵn chứa thông tin về mọi khía cạnh của hệ thống máy tính của bạn.

Nếu bạn thích mạo hiểm và muốn tiến thêm một bước nữa, bạn có thể biến trang đầu tiên của sổ làm việc thành trang tổng quan và sử dụng dữ liệu từ các trang khác để cung cấp cho trang tổng quan đó.

Điểm mấu chốt là bằng cách sử dụng công cụ mới này, bạn sẽ có thể thu thập và hiển thị nhiều thông tin hơn hầu hết các chuyên gia CNTT thậm chí nhận ra rằng hệ thống máy tính có sẵn và bạn sẽ có thể làm điều đó trong một khoảng thời gian ngắn cùng các chuyên gia dành thời gian đào qua bảng điều khiển và Khu vực quản trị để tìm kiếm các chi tiết đó.

Bạn có thấy mình đang xây dựng và sử dụng một công cụ như thế này không? Bạn là lập trình viên VBA và bạn đã bao giờ sử dụng các lớp WMI chưa? Chia sẻ kinh nghiệm và ý tưởng của riêng bạn trong phần bình luận bên dưới!

Tín dụng hình ảnh:Adriano Castelli qua Shutterstock.com, Mclek qua Shutterstock