Как я могу использовать специальные символы в VBA Microsoft Word? - PullRequest
0 голосов
/ 19 июня 2019

Я создал набор макрофайлов в VBA Microsoft Word как своего рода инструмент CAT (CAT = https://en.wikipedia.org/wiki/Computer-assisted_translation).). Проблема в том, что бывают случаи, когда я отображаю текст, который необходимо перевести, и пользователь должен вводить текст на своем родном языке. Это может включать некоторые специальные символы, такие как «ăîâșț / ĂÎÂȘȚ», или даже кавычки или скобки. Есть ли способ использовать их в некоторой функции InputBox? Или, по крайней мере, некоторые способ позволить пользователю вводить текст, который ему нужен, в какой-то TextBox или что-то? ... Или как мне подойти к этому? ... Может быть, мне нужна поддержка UTF-8? Или? ... Любая помощь будет быть оцененным! ...

Я пробовал функцию Microsoft Word vba InputBox. Я также думаю, если, возможно, я смогу создать свой собственный InputBox, с моими условиями, я мог бы иметь тот, который принимает эти символы тоже, или все символы в некоторую строковую переменную .. Вот что говорит кто-то из StackOverflow: Можно ли создать в VBA «поле ввода», которое может принимать текстовое выделение с несколькими строками в качестве ввода? (я имею в виду ответ gizlmo ...)

Вот 3 строки кода, которые содержат это (хотя это больше вопрос о том, как задавать вопросы, а не вопрос об отладке, так что они на самом деле не нужны ...)

MsgBox ("Ziua " & Str(ziua) & " - " & titlurien(ziua))
        titluales = InputBox("Titlul original:  " & titlurien(ziua), "Ziua: " & Str(ziua) & ", Rapsodia Realitatilor " & monthname(lunanecesara) & Str(annecesar))
        titluriro(ziua) = titluales

Я ожидаю, что вывод будет точно таким, какой он напечатал, будь то кавычки, скобки или специальные символы (например, "ăîâșț" / "ĂÎÂȘȚ") ...

1 Ответ

0 голосов
/ 19 июня 2019

VBA InputBox будет принимать любой символ, набранный или вставленный в него. Доступные для ввода символы зависят от языковой версии Windows и Office, установленной конечным пользователем.

Ниже приведен тест, который я только что сделал с вашим примером строки символов "ăîâșț / ĂÎÂȘȚ"

SpecialCharInput()
    Dim str As String
    str = InputBox("Enter you text", "Special Test Input Box")
    Debug.Print str
End Sub

В моей системе английского языка единственная проблема, с которой он сталкивался, была в верхнем и нижнем регистре турецких символов "ȘȚ". Под бедой я подразумеваю, что эти символы превратились в знаки вопроса "??" в строке результата. Однако я уверен, что если бы моя система поддерживала турецкий язык, эти символы были бы распознаны и правильно выведены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...