CMD完成コード
Sub testdmd()
'コマンドプロンプトを使うためのオブジェクト
Dim wsh As New IWshRuntimeLibrary.WshShell
Dim result As WshExec
Dim cmd As String
Dim filedata() As String
Dim i As Integer
i = 3
Dim checkSheet As Worksheet
Set checkSheet = Worksheets("CMD") '⇒シート名
Dim commandCell As Range 'コマンドの入っているセルを示すRange
Set commandCell = checkSheet.Range("C3") '⇒CMDが記載されたセル
Do While commandCell.Text <> "" 'セルにコマンドが入ってるなら繰り返す
cmd = commandCell.Text '実行したいコマンド
'コマンドを実行
Set result = wsh.Exec("%ComSpec% /c " & cmd)
'コマンドの実行が終わるまで待機
Do While result.Status = 0
DoEvents
Loop
'結果を改行区切りで配列へ格納
filedata = Split(result.StdOut.ReadAll, vbCrLf)
'A1から順番に結果を書き込む
With Worksheets("抽出") '⇒結果を書き込む別シート
Dim filenm As Variant
For Each filenm In filedata
.Cells(i, 2).Value = filenm
i = i + 1
Next
End With
Set commandCell = commandCell.Offset(1, 0) '一行下のセルに進む
Loop
Set result = Nothing
Set wsh = Nothing
End Sub
Sub clear()
Range("b3:b100").ClearContents
End Sub
Sub check2()
Dim name As String
name = Worksheets("抽出").Range("C2").Value '条件に一致させるセルを代入
Dim rowsCnt As Long
rowsCnt = Worksheets("抽出").Cells(Rows.Count, 2).End(xlUp).Row '最終行の取得
Dim i As Long
Dim K As Long
K = 1
For i = 4 To rowsCnt Step 3 '2行おきに下へずらす
If Worksheets("抽出").Cells(i, 2).Value Like "*Microsoft Windows*" Then
Worksheets("CMD").Cells(K + 2, 4).Value = "一致"
Worksheets("CMD").Cells(K + 2, 4).Interior.ColorIndex = 2
Else
Worksheets("CMD").Cells(K + 2, 4).Value = "不一致"
Worksheets("CMD").Cells(K + 2, 4).Interior.ColorIndex = 3
End If
K = K + 1
Next
End Sub
'コマンドプロンプトを使うためのオブジェクト
Dim wsh As New IWshRuntimeLibrary.WshShell
Dim result As WshExec
Dim cmd As String
Dim filedata() As String
Dim i As Integer
i = 3
Dim checkSheet As Worksheet
Set checkSheet = Worksheets("CMD") '⇒シート名
Dim commandCell As Range 'コマンドの入っているセルを示すRange
Set commandCell = checkSheet.Range("C3") '⇒CMDが記載されたセル
Do While commandCell.Text <> "" 'セルにコマンドが入ってるなら繰り返す
cmd = commandCell.Text '実行したいコマンド
'コマンドを実行
Set result = wsh.Exec("%ComSpec% /c " & cmd)
'コマンドの実行が終わるまで待機
Do While result.Status = 0
DoEvents
Loop
'結果を改行区切りで配列へ格納
filedata = Split(result.StdOut.ReadAll, vbCrLf)
'A1から順番に結果を書き込む
With Worksheets("抽出") '⇒結果を書き込む別シート
Dim filenm As Variant
For Each filenm In filedata
.Cells(i, 2).Value = filenm
i = i + 1
Next
End With
Set commandCell = commandCell.Offset(1, 0) '一行下のセルに進む
Loop
Set result = Nothing
Set wsh = Nothing
End Sub
Sub clear()
Range("b3:b100").ClearContents
End Sub
Sub check2()
Dim name As String
name = Worksheets("抽出").Range("C2").Value '条件に一致させるセルを代入
Dim rowsCnt As Long
rowsCnt = Worksheets("抽出").Cells(Rows.Count, 2).End(xlUp).Row '最終行の取得
Dim i As Long
Dim K As Long
K = 1
For i = 4 To rowsCnt Step 3 '2行おきに下へずらす
If Worksheets("抽出").Cells(i, 2).Value Like "*Microsoft Windows*" Then
Worksheets("CMD").Cells(K + 2, 4).Value = "一致"
Worksheets("CMD").Cells(K + 2, 4).Interior.ColorIndex = 2
Else
Worksheets("CMD").Cells(K + 2, 4).Value = "不一致"
Worksheets("CMD").Cells(K + 2, 4).Interior.ColorIndex = 3
End If
K = K + 1
Next
End Sub