• ベストアンサー

VBAでできますか?

VBAでパソコンのシリアルナンバーって取得できるものでしょうか? batだと取得できるのですが、batで取得した値をExcelで表示できるのでしょうか? 教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

#1さんの、WindowsXPだと動いてくれません。 コマンドプロンプトが立ち上がって、 カーソルだけが点滅して永遠の待ち状態?になりました。 なぜか?は置いといて以下なら、7、XPとも動くはず。 (お望みの『シリアルナンバー』ではないかもしれん) 質問者さんへ 正解が降ってくるまで待っていてるのは、 質問者・回答者ともに時間の無駄です。 回答が期待した結果にならなかったら、 積極的に働きかけるようにした方が良いと思いますよ。 Sub b() Dim oLocator As Object Dim oService As Object Dim oCol As Object Dim prp As Object Set oLocator = CreateObject("WbemScripting.SWbemLocator") Set oService = oLocator.ConnectServer Set oCol = oService.ExecQuery("SELECT * FROM Win32_ComputerSystemProduct") For Each prp In oCol ThisWorkbook.Sheets(1).Cells(1, 1) = "IdentifyingNumber" ThisWorkbook.Sheets(1).Cells(2, 1) = prp.IdentifyingNumber Next Set oCol = Nothing: Set oService = Nothing: Set oLocator = notthing End Sub

その他の回答 (1)

  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.1

こんな感じでDOSコマンドの返り値を取得することができます。 Sub Sample()   Set WSH = CreateObject("WScript.Shell")   sCmd = "wmic csproduct get IdentifyingNumber"   Set wExec = WSH.Exec("%ComSpec% /c " & sCmd)   Do While wExec.Status = 0     DoEvents   Loop   sResult = wExec.StdOut.ReadAll   Range("A1") = sResult   Set wExec = Nothing   Set WSH = Nothing End Sub

関連するQ&A