如何在Microsoft Word的VBA中使用特殊字符?

时间:2019-06-19 12:42:20

标签: vba ms-word

我已经在Microsoft Word的VBA中创建了一组宏文件,这是一种CAT工具(CAT = https://en.wikipedia.org/wiki/Computer-assisted_translation)。问题是,在某些情况下,我会显示需要翻译的文本,而用户需要以自己的语言输入文本。其中可能包含一些特殊字符,例如“ăîî/ șțÎĂ”,甚至引号或方括号。有什么方法可以在某些InputBox函数中使用它们吗?或者,至少可以通过某种方式让用户以TextBox或其他方式输入他需要的文本?...或者我应该如何处理呢?...也许我需要UTF-8支持?还是?...任何帮助将不胜感激!...

我已经尝试了Microsoft Word的vba函数InputBox。我也在考虑,也许,如果我能够根据自己的条件创建自己的InputBox,我也许就能拥有一个也可以接受这些字符的字符,或者将所有字符放入一个字符串变量中...这是StackOverflow上某人说的: Is it possible to create an 'input box' in VBA that can take a text selection with multiple lines as an input?(我指的是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 :(得分:0)

VBA InputBox将接受任何键入或粘贴到其中的字符。可以输入的字符取决于最终用户安装的Windows和Office的语言版本。

下面是我刚刚对您的示例字符串“ ăîâșț / ĂÎÂȘȚ”进行的测试

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

在我的英语系统上,唯一遇到的麻烦是使用大写和小写“ ȘȚ”土耳其语字符。麻烦是指把那些字符变成问号“ ??”在结果字符串中。不过,我敢肯定,如果我的系统支持土耳其语,那么这些字符将被正确识别并输出。