Meine Überlegung war, ob es auch in Word möglich ist, die Umschreibung in Latein, z.B. ein "n" einzugeben und dann die entsprechende Hieroglype ausgeben kann. Die Worksheet.Function würde das für Excel leisten und mit copy/paste ist eine Übertragung nach Word möglich.
Wenn es gelingen würde die Hieroglyphe mit ChrW zusammenzusetzen, wäre es in Word flexibler.
11.12.2021, 18:07 (Dieser Beitrag wurde zuletzt bearbeitet: 11.12.2021, 18:10 von maninweb.)
Hallo,
beispielhaft, geht sowas auch mit API. Dafür müsst Du dann die UTF8-Hex-Kodierung (Beispiel) kennen. Ggf. kann man ja noch einen Algo schreiben, der die Dezimalzahlen entsprechend umwandelt. Vielleicht kannst ja darauf aufbauen.
Code:
Option Explicit
Private Declare PtrSafe Function apiMultiByteToWideChar Lib "kernel32" _ Alias "MultiByteToWideChar" (ByVal CodePage As Long, _ ByVal dwFlags As Long, _ ByVal lpMultiByteStr As LongPtr, _ ByVal cchMultiByte As Long, _ ByVal lpWideCharStr As LongPtr, _ ByVal cchWideChar As Long) As Long
Public Function UTF8WriteCharacter(Code As String) As String
Dim c As Long Dim n As Long Dim r As String Dim s As String Dim b() As Byte
' Validate...
If Not Len(Code) <> 8 Then
' Count...
c = Len(Code) / 2 - 1
' Resize...
ReDim b(0 To c)
' Bytes...
For n = LBound(b) To UBound(b)
b(n) = CLng("&H" & Mid(Code, 2 * n + 1, 2))
Next
' Encode...
n = 0 n = apiMultiByteToWideChar(65001, 0&, VarPtr(b(0)), c + 1, 0&, 0&) s = String(n, 0) n = apiMultiByteToWideChar(65001, 0&, VarPtr(b(0)), c + 1, StrPtr(s), n) r = Left(s, n)
U+13000 entspricht in der UTF-8-Kodierung: 0xF0 0x93 0x80 0x80. Das Konvertieren von F0938080 in 77824 und vice-versa ist wohl nicht ganz so simpel. Hier https://rosettacode.org/wiki/UTF-8_encode_and_decode findest Du weiter unten auch eine VBA-Prozedur, die ich aber nicht ausprobiert habe.
Hinweis: UTF8WriteCharacter() tut's ja erstmal nur für die Unicode-Hex-Codes der Länge 8 und müsste ggf. angepasst werden.
Gruß
Microsoft Excel Expert · Microsoft Most Valuable Professional (MVP) :: 2011-2019 & 2020-2022 :: 10 Awards https://de.excel-translator.de/translator:: Online Excel-Formel-Übersetzer :: Funktionen :: Fehlerwerte :: Argumente :: Tabellenbezeichner
Mit der Übergabe einer Dezimal-Zahl zwischen 0-1080 wird die entsprechende Hieroglyphe ausgegeben. Es wird kein Excel, sondern "nur" VBA für die Bit-Berechenung und die API von Mourad verwendet.
Die unterste "Sub Einfuegen" gibt im Moment 400 Zeichen aus. Mit dem Wissen der Umschreibung im Latin-Alphabet können später auch einzelne Zeichen an der Stelle des Cursors geschrieben werden.