- Код: Выделить всё
Sub Макрос5()
Dim i%, t$, s$, s1$, a%
s = Selection.Text
s1 = ""
If Len(s) > 32000 Then
MsgBox "Уменьшите выделенную область", vbCritical, "Прерывание программы"
Exit Sub
End If
For i = 1 To Len(s)
t = Mid(s, i, 1)
On Error GoTo Err
a = AscW(t)
If a > 255 Then
s1 = s1 + t
Else
s1 = s1 + Chr(AscW(t))
End If
On Error GoTo 0
1 Next i
Selection.Text = s1
Exit Sub
Err: s1 = s1 + t
GoTo 1
End Sub
"Иероглифы" вставляются в Word, выделяются и вызывается макрос, который их перекодирует.
Хотел написать аналогичное в VB6. Но не получается. Исходные "иероглифы" невозможно ввести в качестве исходных данных без искажения. Пробовал и вставить из clipboad в текстовое окно и пользоваться функцией
- Код: Выделить всё
Dim hStrPtr As Long, lLength As Long, sBuffer As String
OpenClipboard Me.hwnd
hStrPtr = GetClipboardData(CF_TEXT)
If hStrPtr <> 0 Then
lLength = lstrlen(hStrPtr)
If lLength > 0 Then
sBuffer = Space$(lLength)
CopyMemory ByVal sBuffer, ByVal hStrPtr, lLength
End If
не получается. Можно как то вставить скопированные "иероглифы" без искажения, как это делает Word?
P.S. Private Const CF_TEXT = 1
Может тут другое значение?