Como ver todas as informações do seu PC usando um simples script VBA do Excel

O Excel e 10 minutos de trabalho fornecerão informações mais detalhadas sobre o seu computador do que você jamais imaginou. Soa bom demais para ser verdade? Isso é o Windows, se você souber como usá-lo.

O Excel e 10 minutos de trabalho fornecerão informações mais detalhadas sobre o seu computador do que você jamais imaginou.  Soa bom demais para ser verdade?  Isso é o Windows, se você souber como usá-lo.
Propaganda

Você já precisou saber os detalhes de CPU ou memória do seu computador, número de série ou modelo ou versões de software instaladas, mas não sabia onde procurar? Com apenas um pouco de código simples no Excel, você pode extrair toda uma biblioteca de informações do seu PC com Windows. Você obteve o PC que você pediu? Descubra com estas ferramentas de informação do sistema [Windows] Você recebeu o PC que pediu? Descubra com estas ferramentas de informação do sistema [Windows] Você comprou recentemente um PC? Se sim, foi personalizado? Por customização, quero dizer, montada por uma loja de computadores local, ou mesmo apenas por alguém que você conhece que constrói e vende computadores. Se você ... Leia mais.

Soa bom demais para ser verdade? Bem, isso é o Windows, se você souber usá-lo.

Talvez você precise colocar as mãos um pouco sujas, mas neste artigo forneceremos todo o código necessário e como colocá-lo no Excel e fazê-lo funcionar. Assim que estiver pronto, você terá uma planilha do Excel que, toda vez que abri-lo, informa tudo o que você sempre quis saber sobre o sistema do seu computador.

Observe que isso só funcionará com a versão para desktop do Excel, que você pode obter com uma avaliação gratuita do Office 6 maneiras de usar o Microsoft Office sem pagá-lo 6 maneiras de usar o Microsoft Office sem pagar por ele Você precisa do Microsoft Office, mas não gosta do preço? Mostramos alternativas gratuitas, incluindo avaliações gratuitas e versões simples ou móveis do pacote do Microsoft Office. Consulte Mais informação .

A Magia do WMI

Em qualquer computador executando um sistema operacional da Microsoft, você tem acesso a um poderoso conjunto de extensões chamado Windows Management Instrumentation (WMI), que fornece um método muito poderoso e abrangente para acessar informações e especificações sobre o seu computador, sistema operacional. saber se você está em uma versão de 64 bits do Windows 4 maneiras fáceis de saber se você está em uma versão de 64 bits do Windows Você está usando um processador que suporta um sistema operacional de 64 bits e você está executando um 64 sistema operacional de bits? O usuário de PC médio off-and-on provavelmente não sabe as respostas a estas perguntas, embora eles devam .... Read More, e software instalado.

wmiwindows

O melhor de tudo, o WMI está acessível Como escrever um script do Windows Para alterar as configurações de rede em trânsito Como escrever um script do Windows Para alterar as configurações de rede em trânsito Em muitos escritórios ou ambientes de trabalho, talvez seja necessário redefinir as configurações de rede para conectar-se a redes diferentes. Eu encontrei-me nesta situação com bastante freqüência, e ficou tão cansado de navegar para o ... Leia mais de linguagens de programação como VBA Como você pode fazer seu próprio aplicativo simples com VBA Como você pode fazer seu próprio aplicativo simples com VBA Para aqueles de você que realmente gostaria de poder escrever seu próprio aplicativo, mas nunca digitou uma única linha de código antes, vou orientá-lo fazendo sua própria ... Leia mais, disponível em quase todos os produtos do Microsoft Office.

Configurando sua planilha automatizada

Primeiro, crie sua nova pasta de trabalho do Excel e chame-a de algo como MyComputerInfo. xlsm (Macro habilitado). Abra, pule Sheet1 e renomeie as próximas 11 folhas da seguinte maneira:

  • Rede
  • LogicalDisk
  • Processador
  • Memória física
  • Controlador de vídeo
  • OnBoardDevices
  • Sistema operacional
  • Impressora
  • Programas
  • Contas
  • Serviços

Eles conterão todos os detalhes do seu computador e serão atualizados sempre que você abrir essa planilha do Excel.

wmi1

Em seguida, vá para o item de menu Desenvolvedor e, na seção Controles, clique em Exibir código .

wmi2

Se você não vir o item de menu Desenvolvedor, clique em Arquivo> Opções> Personalizar Faixa de Opções, altere a lista suspensa Selecionar comandos de para Todas as Guias, selecione Desenvolvedor e pressione o botão Adicionar >> para adicioná-lo ao lado da Fita Personalizada. Certifique-se de que a caixa de seleção Desenvolvedor desse lado esteja selecionada assim que você a adicionar.

wmi3

Uma vez que você está dentro do editor de código do VBA Monitor Se seus aplicativos VBA estiverem sendo executados com este monitor slick de script Se tudo que você precisa fazer é adicionar os scripts abaixo a um módulo. Esses scripts farão todo o trabalho pesado. Você não precisa escrever este código sozinho, basta copiá-los e colá-los conforme mostrado abaixo.

Quando terminar de copiar e colar usando o código da próxima seção, tudo o que você precisa fazer é adicionar um pouco mais de código para carregar suas planilhas e pronto.

Ok, pronto para copiar e colar? Vamos lá.

Construindo seus módulos WMI

A inspiração para esse código vem de um recurso fantástico do Google Sites chamado Além do Excel. O exemplo mostrado há uma sub-rotina chamada WMI (), que passa todas as informações de rede do seu computador para a área de depuração do ambiente de programação do Excel.

Claro, isso não nos faz muito bem lá, então eu modifiquei o código para, em vez disso, enviar todos os detalhes para uma das planilhas que você criou na primeira etapa deste guia.

Na área de navegação de codificação, você também verá uma seção chamada Módulos e um componente chamado Módulo1 . Clique duas vezes sobre isso para abri-lo. Se você não vir a pasta Módulos, expanda Inserir no menu e selecione Módulo .

wmi5

Esta área é onde todas as sub-rotinas serão usadas pelo WMI para obter todas as informações importantes sobre o seu computador e carregá-las nas folhas criadas.

Coloque as seguintes linhas no topo da janela de código por si só.

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 

Deve ficar assim quando terminar:

wmi5

Cole o seguinte código no Módulo1 abaixo das linhas que você acabou de criar:

 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 

Agora, você criará uma função idêntica para cada folha criada na primeira parte deste guia com algumas pequenas diferenças.

Por exemplo, em seguida, você deve copiar o código acima para NetworkWMI (), colá-lo abaixo do final desse código e substituir "NetworkWMI ()" por "LogicalDiskWMI ()"

Há apenas algumas seções que você precisa alterar para que esse código preencha a planilha correta.

Mude isso:

 sWQL = "Select * From Win32_NetworkAdapterConfiguration" 

Para isso:

 sWQL = "Select * From Win32_LogicalDisk" 

Altere estas quatro linhas:

 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 

Para isso:

 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 

Altere estas duas linhas:

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

Para isso:

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

E estas três linhas:

 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 

Para isso:

 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 

Agora você está quase terminando!

Repita o acima para cada guia em sua pasta de trabalho. As funções serão as seguintes:

  • “ProcessorWMI ()” para a folha “Processador”.
  • “PhysicalMemWMI ()” para a planilha “Memória Física”.
  • “VideoControlWMI ()” para a folha “Video Controller”.
  • “OnBoardWMI ()” para a folha “OnBoardDevices”.
  • “PrinterWMI ()” para a folha “Impressora”.
  • “OperatingWMI ()” para a planilha do sistema operacional.
  • “SoftwareWMI ()” para a planilha “Software”.
  • “ServicesWMI ()” para a folha “Serviços”.

Os objetos especiais “Win32_” que você precisa usar para acessar essas informações sobre o seu computador são os seguintes:

  • Win32_NetworkAdapterConfiguration - Todas as suas configurações de rede
  • Win32_LogicalDisk - Discos com capacidades e espaço livre.
  • Win32_Processor - especificações de CPU
  • Win32_PhysicalMemoryArray - RAM / tamanho da memória instalada
  • Win32_VideoController - adaptador gráfico e configurações
  • Win32_OnBoardDevice - Dispositivos da placa-mãe
  • Win32_OperatingSystem - Qual versão do Windows com o número de série
  • WIn32_Printer - impressoras instaladas
  • Win32_Product - Software Instalado
  • Win32_BaseService - Lista serviços em execução (ou parados) em qualquer PC, juntamente com o caminho e o nome do arquivo do serviço.

Termine de copiar / colar e ajustar cada uma dessas funções na área Module1 do código. Quando terminar, siga para a próxima seção deste guia.

Lembre-se de salvar seu código na visualização do VB! Se você salvou inicialmente sua pasta de trabalho com o tipo de arquivo .xls, o Excel solicitará que você use um tipo de arquivo habilitado para macro, como .xlsm .

Carregando automaticamente a pasta de trabalho

Agora que você tem todas essas funções poderosas criadas, tudo o que resta é executá-las toda vez que a pasta de trabalho é aberta. Isso é muito fácil.

No navegador de objetos à esquerda, em objetos do Microsoft Excel, você deve ver ThisWorkbook . Clique duas vezes no objeto para abri-lo.

wmi6

Na parte superior da área do código, há duas caixas suspensas, altere a esquerda para a pasta de trabalho e a direita para Abrir .

wmi7

Você verá uma função gerada automaticamente para você chamada Private Sub Workbook_Open () .

Aqui dentro, digite as seguintes linhas de código para que a função seja assim:

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

Agora, toda vez que você abrir a pasta de trabalho, cada uma de suas funções recém-criadas será chamada, mostre todos os dados Visualize seus dados e faça suas planilhas Acessível com um painel do Excel Visualize seus dados e faça suas planilhas Acessível com um painel do Excel Às vezes, um formato de planilha simples não é atraente o suficiente para tornar seus dados acessíveis. Um painel permite que você apresente seus dados mais importantes em um formato fácil de digerir. Leia mais no computador e carregue-o na folha apropriada.

Para vê-lo em ação, salve o código, feche a janela de código, salve a pasta de trabalho e feche-a também. Reabra o arquivo que você acabou de fechar e você descobrirá que todas as folhas contêm volumes de dados sobre o seu computador.

Como a pasta de trabalho contém macros, que podem ser desativadas por motivos de segurança, talvez seja necessário clicar em Ativar conteúdo na parte superior da planilha para que os dados sejam coletados.

Aviso - ele coleta MUITOS dados, portanto espere alguns minutos para que ele seja carregado quando você abrir o arquivo pela primeira vez.

Coletando Informações do Computador

A coisa surpreendente sobre o uso do WMI para isso é que os dados acima são apenas a ponta do iceberg. Existem centenas de classes mais WMI disponíveis contendo informações sobre todos os aspectos do sistema do seu computador.

Se você fosse aventureiro e quisesse levar isso um passo adiante, você poderia transformar a primeira folha da pasta de trabalho em um painel Criar seu próprio painel de controle climático Nesta classe principal do Google Spreadsheet Criar seu próprio painel de controle climático transformar sua conta do Google Drive em um sistema de análise inteligente de clima e viver uma fantasia de Jornada nas Estrelas? Está bem! Leia mais e use os dados das outras planilhas para alimentar esse painel.

O ponto principal é que, ao usar essa nova ferramenta, você poderá coletar e exibir mais informações do que a maioria dos especialistas em TI IT Knowledge Exchange - Uma versão gratuita do Experts Exchange! IT Knowledge Exchange - Uma versão gratuita do Expert Exchange! Leia Mais, saiba que está disponível sobre um sistema de computador e você poderá fazê-lo em uma fração do tempo que esses mesmos especialistas gastam pesquisando no painel de controle e nas áreas Administrativas que pesquisam esses detalhes.

Você se vê construindo e usando uma ferramenta como essa? Você é um programador VBA 4 grandes sites para torná-lo um guru Visual Basic 4 grandes sites para torná-lo um guru Visual Basic Quer aprender Visual Basic? Aqui estão alguns ótimos recursos para você começar. Leia mais e você já usou classes WMI? Compartilhe suas próprias experiências e idéias na seção de comentários abaixo!

Créditos da Imagem: Adriano Castelli via Shutterstock.com, Mclek via Shutterstock

In this article