微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

即使 Excel 语言设置为阿拉伯语,VBA 也无法设置 RightToLeft

如何解决即使 Excel 语言设置为阿拉伯语,VBA 也无法设置 RightToLeft

我的 Excel(Office 365、Windows 10)VBA 项目有问题。我正在尝试创建一个等效的GETTEXT,允许作者国际化并因此为他们自己的项目提供本地化。我试图复制使用 Excel 的人会看到的视图,如果使用 RTL 语言(如阿拉伯语)。

我已经下载并安装了阿拉伯语语言包。我已将其设为我的首选语言,并且它会在我的 Office 应用程序中认打开(顺便说一句 - 我不懂阿拉伯语,我可以轻松下载任何其他 RTL 语言)。

我从 Tools > Options > Editor Format > Font: normal Text = "dubai Medium (arabic)"

中选择了一种阿拉伯字体

很遗憾,我无法直接在“控件属性”窗口中显示阿拉伯文本,例如表单标题或文本框文本;我也无法在编辑器窗口中键入或粘贴阿拉伯语文本。我得到了可怕的 ????

内置 Excel 消息框和命令以阿拉伯语和 RTL 显示,但我的消息框和表单无法设置。到目前为止,我发现的唯一解决方法是将阿拉伯文本放在工作表单元格中并从那里调用它,或者将文本直接粘贴到表单控件中。 MsgBox 还允许 RTL 和右对齐文本常量,这很好,但这会让我的表单一团糟,即使我以编程方式更改控件的 .Left.TextAlign 值,我仍然存在左对齐 Form 标题、右对齐关闭按钮以及 MultiPage 和 TabStrip 对齐的各种问题。

我不敢相信微软会如此尴尬,所以我一定是遗漏了什么。我不愿意安装阿拉伯语作为我的 Windows 语言只是为了测试,因为那真的会搞砸我的一天 - 我会完全迷失 - 对阿拉伯语用户没有冒犯!

任何帮助将不胜感激。

解决方法

好的,我终于让它工作了(有点)。我不得不将系统区域设置为阿拉伯语。这可以通过以下方式完成:

Settings > Time and Language > Language > Administrative Language Settings (link)

然后在接下来的对话中...

Language for non-Unicode programs 下,按 Change System Locale 按钮并选择阿拉伯语选项之一。

唯一的问题是表单标题没有右对齐并且控制框(关闭)仍然在右侧。但我想那是小土豆。所有带有滚动条/按钮的控件(RefEdit、ListBox、ComboBox 等)现在都具有正确的 RTL 位置。 Tabstrips、Frames 和 MultiPages 也正确 RTL'd。我希望这可以帮助其他人对此问题感到困惑。

Screenshot of RTL'd form

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。