vba - 如何识别 MS Office 在 Visual Basic 中使用的显示语言(即工具栏/菜单)?

标签 vba office-2007

我有一个从 MS Excel 电子表格生成 MS Word 报告的宏。我在报告中使用的样式在宏中用英文编码。

我的一些团队将他们的 MS Office 显示语言设置为法国(这并不奇怪,我在法国工作)。因此,我的宏不起作用,因为样式标题(英文)用于设置样式。例如我告诉 MS Word 使用样式“List Bullet 1”,而 MS Word 中相应的样式是“Liste à puce 1”,所以找不到匹配项。

所以我的问题是,如何检测 MS Office 显示语言,然后以正确的语言设置样式值?

另一个问题是,除了标题之外,还有其他引用样式的方式吗?

最好的问候,

最佳答案

科尔马航空,

GSerg 的链接为 Microsoft VBA 如何处理语言设置提供了很好的引用。

使用 VBA,您可以出于各种目的引用 Word 中的语言。例如,您可以确定当前语言,将其存储在变量中,然后在消息框中显示:

    Sub LanguageMessageBox()

        CurrentLanguage = Selection.LanguageID
        MsgBox (CurrentLanguage)

    End Sub

您可以在此处找到语言 ID 列表:http://msdn.microsoft.com/en-us/library/bb213877(v=office.12).aspx

您也可以简单地引用语言本身,特别是如果您不想查看数字或以某种算法方式使用数字:

Sub LanguageMessageBox()

    CurrentLanguage = Selection.LanguageID
    MsgBox (Languages(CurrentLanguage))

End Sub

至于更改语言设置,您可以通过引用languageID轻松更改语言设置:

Sub ChangeLanguage()

    ' 1033 is wdEnglishUS
    ' 1034 is wdSpanish        
    ' 1036 is wdFrench

    If Selection.LanguageID = 1033 Then
        Selection.LanguageID = 1034
        Else
        Selection.LanguageID = 1036
    End If

'Set the grammar dictionary for error checking purposes
Set dicGrammar = Languages(Selection.LanguageID).ActiveGrammarDictionary

End Sub

关于vba - 如何识别 MS Office 在 Visual Basic 中使用的显示语言(即工具栏/菜单)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11719754/

相关文章:

excel - 有没有办法在VBA中使用selenium,获取url,而不打开浏览器?

vba - 计算包含大量文本的 Excel 列中最常用的单词?

c# - 取消关闭 outlook 窗体区域

php - 解析和生成 Microsoft Office 2007 文件(.docx、.xlsx、.pptx)

vba - 在 Excel 中通过 VBA 编辑自定义样式

vba - 有没有办法在 Excel 2010 中查找和替换单元格引用值?编程语言?

visual-studio - 我可以使用VS 2012创建Office 2007加载项吗?

c# - 在VSTO Excel中,如何检测单元格中的数据?

java - Java/Swing 有任何(真正的)Office 2007 外观吗?

vba - 使用VB宏将数据从Word表复制到Excel表时如何保留源格式?