Thema
|
Datum
|
Von Nutzer
|
Rating
|
Antwort
|
Windows API-Funktionen aus Excel-VBA aufrufen |
09.03.2017 15:48:44 |
S@M |
|
|
|
09.03.2017 16:01:40 |
Gast53843 |
|
|
|
10.03.2017 09:00:57 |
Gast1812 |
|
|
|
10.03.2017 09:19:32 |
SJ |
|
|
|
10.03.2017 11:05:56 |
S@M |
|
|
|
11.03.2017 16:07:41 |
Gast78963 |
|
|
|
11.03.2017 16:57:11 |
Gast78963 |
|
|
|
12.03.2017 09:37:40 |
Gast53773 |
|
|
Von:
S@M |
Datum:
09.03.2017 15:48:44 |
Views:
1424 |
Rating:
|
Antwort:
|
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
|
- 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
Bitte geben Sie ein aussagekräftiges Thema an.
Bitte geben Sie eine gültige Email Adresse ein!
- 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
|
Windows API-Funktionen aus Excel-VBA aufrufen |
09.03.2017 15:48:44 |
S@M |
|
|
|
09.03.2017 16:01:40 |
Gast53843 |
|
|
|
10.03.2017 09:00:57 |
Gast1812 |
|
|
|
10.03.2017 09:19:32 |
SJ |
|
|
|
10.03.2017 11:05:56 |
S@M |
|
|
|
11.03.2017 16:07:41 |
Gast78963 |
|
|
|
11.03.2017 16:57:11 |
Gast78963 |
|
|
|
12.03.2017 09:37:40 |
Gast53773 |
|
|