Antworten auf deine Fragen:
Neues Thema erstellen

VBA Object Inhalt ohne Schleife abrufen

Enigmon

Nicht mehr ganz neu hier

Hallo,

Ich komme bei dem Code einfach nicht weiter.
Den untenstehenden Code habe ich im Internet gefunden und er funktioniert auch als Makro in Excel 365.

Ich möchte aber nicht die for Each Schleife durchlaufen, sondern gleich das Ergebnis von
objItem.Name
haben.
Wie kann ich die einzelnen Ergebnisse in der Objektreferenz ObjCPU abrufen, damit ich sie gleich einem String übergeben kann.

Vielen Dank schon mal im Voraus
LG Thomas

strComputerName = Environ("ComputerName") '** Objektvariable setzen Set objCPU = GetObject("winmgmts:\\" & strComputerName & "\root\cimv2"). _ ExecQuery("Select * from Win32_Processor") '** CPU-Paramter auslesen For Each objItem In objCPU Debug.Print "Prozessor : " & objItem.DeviceID Debug.Print "Name : " & Trim$(objItem.Name) Debug.Print "Takt (MHz) : " & objItem.MaxClockSpeed Debug.Print "CPU ID : " & objItem.ProcessorId Debug.Print "Computername: " & objItem.path_.server Next
 

Excel

Lösung
Um die Ergebnisse von objItem.Name direkt abzurufen und einem String zuzuweisen, kannst du die Schleife durch eine einfache Zuweisung ersetzen:

Option Explicit

Sub GetCPUName()
Dim objWMIService As Object
Dim colItems As Object
Dim objItem As Object
Dim strCPUName As String

' Erstelle eine Instanz des WMI-Dienstes
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

' Führe die WMI-Abfrage aus, um die CPU-Informationen zu erhalten
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Processor")

' Überprüfe, ob CPU-Informationen vorhanden sind
If colItems.Count > 0 Then
' Da es sich um eine einzelne CPU handelt, nehmen wir das erste Objekt
Set objItem =...

VBA Object Inhalt ohne Schleife abrufen

Irino987

Noch nicht viel geschrieben

Um die Ergebnisse von objItem.Name direkt abzurufen und einem String zuzuweisen, kannst du die Schleife durch eine einfache Zuweisung ersetzen:

Option Explicit

Sub GetCPUName()
Dim objWMIService As Object
Dim colItems As Object
Dim objItem As Object
Dim strCPUName As String

' Erstelle eine Instanz des WMI-Dienstes
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")

' Führe die WMI-Abfrage aus, um die CPU-Informationen zu erhalten
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Processor")

' Überprüfe, ob CPU-Informationen vorhanden sind
If colItems.Count > 0 Then
' Da es sich um eine einzelne CPU handelt, nehmen wir das erste Objekt
Set objItem = colItems.ItemIndex(0)

' Weise den Wert von objItem.Name der Variablen strCPUName zu
strCPUName = objItem.Name

' Gib den Wert von strCPUName aus oder verwende ihn weiter wie gewünscht
MsgBox "CPU Name: " & strCPUName
Else
MsgBox "Keine CPU-Informationen gefunden!"
End If

' Gib die verwendeten Objekte frei
Set objWMIService = Nothing
Set colItems = Nothing
Set objItem = Nothing
End Sub
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.634
Beiträge
1.538.447
Mitglieder
67.555
Neuestes Mitglied
scheflo
Oben