Thema Datum  Von Nutzer Rating
Antwort
09.03.2017 15:48:44 S@M
NotSolved
09.03.2017 16:01:40 Gast53843
NotSolved
Rot Windows API-Funktionen aus Excel-VBA aufrufen
10.03.2017 09:00:57 Gast1812
NotSolved
10.03.2017 09:19:32 SJ
NotSolved
10.03.2017 11:05:56 S@M
NotSolved
11.03.2017 16:07:41 Gast78963
NotSolved
11.03.2017 16:57:11 Gast78963
NotSolved
12.03.2017 09:37:40 Gast53773
NotSolved

Ansicht des Beitrags:
Von:
Gast1812
Datum:
10.03.2017 09:00:57
Views:
738
Rating: Antwort:
  Ja
Thema:
Windows API-Funktionen aus Excel-VBA aufrufen

Hallo Gast53843,

ja, das ist eine Möglichkeit, die auch funktioniert:
 

Sub Test()

    Dim sngTZNr, sngLRegKey As Single
    Dim strText, strCmd As String
    Dim vTZI As Variant
    
    Const cRegKey  As String = """HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones"""
    'New Zealand Standard Time  26
    Const cTZI  As String = """HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones\New Zealand Standard Time"""
    sngLRegKey = Len(cRegKey)
    
    strCmd = "cmd /c REG QUERY " & cRegKey & " /se #"
    TimeZoneList = Split(CreateObject("wscript.shell").exec(strCmd).stdout.readall, vbCrLf)
    
    sngTZNr = UBound(TimeZoneList)
    'MsgBox sngTZNr
    
    'strText = "#####" & vbCrLf
    
    For i = 4 To sngTZNr
        strText = strText & Mid(TimeZoneList(i), sngLRegKey) & vbCrLf
        'MsgBox TimeZoneList(i)
    Next i
    
    'MsgBox strText
    
    strCmd = "cmd /c REG QUERY " & cTZI & " /v " & "TZI"
    'MsgBox strCmd
    TZIFull = Split(CreateObject("wscript.shell").exec(strCmd).stdout.readall, vbCrLf)
    TimeZoneInfo = Split(TZIFull(2), "    ")
    
'    For i = 0 To UBound(TimeZoneInfo)
'        MsgBox i & ":" & TimeZoneInfo(i)
'    Next i
    
    vTZI = TimeZoneInfo(3)
    MsgBox vTZI
    
End Sub



Der Nachteil ist aber, dass ich aus diesem vTZI-Wert, die Differenz zu UTC sowohl für Sommer- als auch für Winterzeit berechnen muss. Das ist bestimmt machbar aber kompliziert.
Diese Info könnte ich direkt aus Windows über die TimeZoneInfo-Klasse (TimeZoneInfo.FindSystemTimeZoneById). Deswegen möchte ich die API verwenden.

Geht das aus VBA?

VG
S@M


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
09.03.2017 15:48:44 S@M
NotSolved
09.03.2017 16:01:40 Gast53843
NotSolved
Rot Windows API-Funktionen aus Excel-VBA aufrufen
10.03.2017 09:00:57 Gast1812
NotSolved
10.03.2017 09:19:32 SJ
NotSolved
10.03.2017 11:05:56 S@M
NotSolved
11.03.2017 16:07:41 Gast78963
NotSolved
11.03.2017 16:57:11 Gast78963
NotSolved
12.03.2017 09:37:40 Gast53773
NotSolved