Thema Datum  Von Nutzer Rating
Antwort
Rot Windows API-Funktionen aus Excel-VBA aufrufen
09.03.2017 15:48:44 S@M
NotSolved
09.03.2017 16:01:40 Gast53843
NotSolved
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:
S@M
Datum:
09.03.2017 15:48:44
Views:
1299
Rating: Antwort:
  Ja
Thema:
Windows API-Funktionen aus Excel-VBA aufrufen

Hallo Welt,

ich möchte in einer Excel-Datei den Sonnenunter- und -aufgang an beliebigen Stellen der Erde berechnen (in Ortszeit).
Die Berechnung anhand beliebiger geo. Koordinaten kann ich durchführen (http://lexikon.astronomie.info/zeitgleichung/). Das Ergebnis ist allerdings in UTC-Zeit. Ich suche eine Möglichkeit, die Zeitverschiebung zu UTC für beliebige Zeitzonen zu berechnen.
Ich könnte eine eingeschränkte Liste meiner "Lieblingszeitzonen" (Europa, Urlaubsorte, interessante Orte) fest verdrahten aber diese haben auch noch eine Sommerzeit mit vielen verschiedenen Rechenregeln.
Einfacher ist es, diese Daten aus der Registry unter HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones auszulesen. Die API-Klasse dafür habe ich auch schon gefunden: TimeZoneInfo Class (https://msdn.microsoft.com/en-us/library/system.timezoneinfo(v=vs.110).aspx).
Nun meine Frage: wie kann ich aus VBA raus eine API-Klasse ansprechen?
Sagen wir konkret die Funktionen TimeZoneInfo.GetSystemTimeZones() und TimeZoneInfo.FindSystemTimeZoneById().
Durch die erste Funktion kann ich alle bekannten Zeitzonen auslesen und in eine Auswahlliste einspielen, aus der ich die gewünschte TZ auswähle. Mit der zweiten Funktion kann ich den Offset (Standard Time und DST) zu UTC bestimmen.
Den Link zu Pearson (http://www.cpearson.com/excel/TimeZoneAndDaylightTime.aspx) habe ich auch schon gefunden. Auf den wird in vielen Beiträgen verwiesen aber der hilft mir nicht, weil die gewonnen Daten nur den Offset der Lokalzeit zu UTC bestimmen und nicht für eine beliebige Zeitzone (falls ich mich irre, bitte korrigieren).
Also noch mal: wie kann man in Excel-VBA die TimeZoneInfo Class aus dem System Namespace instantiieren?

Vielen Dank
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
Rot Windows API-Funktionen aus Excel-VBA aufrufen
09.03.2017 15:48:44 S@M
NotSolved
09.03.2017 16:01:40 Gast53843
NotSolved
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