excel의 vba에서 유니코드 문자열
그리스 문자를 라틴 문자로 변환할 대체 문자()를 만들려고 합니다.
문제는 다음과 같이 선언한 후에
Dim Source As String
Source = "αβγδεζηικλμνξοπρστθφω"
출처는 "ùîõïìóñôõ"âðùïîá▁"▁sourceöí▁isëãæ"로 해석됩니다.
선언 수준에서 유니코드를 사용할 방법이 있습니까?
시도해 보세요StrConv
:
StrConv("αβγδεζηικλμνξοπρστθφω", vbUnicode)
출처: http://www.techonthenet.com/excel/formulas/strconv.php
[EDIT] 다른 솔루션:
다음 절차를 통해 모든 그리스 문자(소문자 및 대문자)를 얻을 수 있습니다.
Sub x()
Dim i As Long
For i = 913 To 969
With Cells(i - 912, 1)
.Formula = "=dec2hex(" & i & ")"
.Offset(, 1).Value = ChrW$(i)
End With
Next i
End Sub
예를 들어, 문자를 찾기 위해 배열을 작성할 수 있습니다.
출처: http://www.excelforum.com/excel-programming/636544-adding-greek-letters.html
[EDIT 2] 원하는 문자열을 만들 수 있는 서브가 있습니다.
Sub greekAlpha()
Dim sAlpha As String
Dim lLetter As Long
For lLetter = &H3B1 To &H3C9
sAlpha = sAlpha & ChrW(lLetter)
Next
End Sub
앞서 언급했듯이, VBA는 유니코드 문자열을 지원하지만 VBA 편집기는 8비트 코드 페이지에서만 VBA 파일을 인코딩할 수 있기 때문에 코드 내에 유니코드 문자열을 쓸 수 없습니다.Windows-1252
.
그러나 원하는 유니코드 문자열에 해당하는 이진을 변환할 수 있습니다.
str = StrConv("±²³´µ¶·¹º»¼½¾¿ÀÁÃĸÆÉ", vbFromUnicode)
'str value is now "αβγδεζηικλμνξοπρστθφω"
메모장을 사용하여 문자열을 변환합니다. 유니코드 문자열을 복사하여 붙여넣고 파일을 유니코드(utf-8 아님)로 저장한 후 ASCII(사실은 Windows-1252임)로 연 다음 처음 두 문자(ÿ) 없이 VBA 편집기에 복사하여 붙여넣습니다(BOM 마커).
당신은 당신의 출처가 "ùîìïõñóîô".âùáõðï▁"▁isö▁your▁that▁youëí▁interpre"로 해석된다고 말합니다.
Visual Basic Editor는 유니코드를 표시하지 않지만 유니코드 문자열 조작을 지원합니다.
Dim strValue As String
strValue = Range("A1").Value
Range("B1").Value = Mid(strValue, 3)
Range("C1").Value = StrReverse(strValue)
A1에 그리스어 문자가 포함되어 있으면 이 코드를 실행한 후 B1과 C1에도 그리스어 문자가 포함됩니다.
즉시 창이나 메시지 상자에서 값을 제대로 볼 수 없습니다.
언급URL : https://stackoverflow.com/questions/7269399/declaring-a-unicode-string-in-vba-in-excel
'programing' 카테고리의 다른 글
변경 내용을 Git 하위 모듈로 되돌리려면 어떻게 해야 합니까? (0) | 2023.06.07 |
---|---|
AVD Manager - Android 가상 장치를 만들 수 없습니다. (0) | 2023.06.07 |
Visual Studio 2008에서 JavaScript/jQuery Intellisense를 작동하려면 어떻게 해야 합니까? (0) | 2023.06.07 |
JEST가 코드를 실행하고 있는지 여부를 확인하는 방법은 무엇입니까? (0) | 2023.06.07 |
TypeScript 주의를 제거하는 방법: 'length' 속성이 '{}' 유형에 없습니다. (0) | 2023.06.07 |