2

我正在使用适当的 GUI 进行语言选择的“修复整个文档中的语言”脚本。但是,我无法以编程方式生成 PowerPoint 知道的所有语言的列表,包括用户自己语言的语言名称。

出于这个原因,我正在寻找以下内容:

  • 一种以编程方式枚举 msoLanguageIds 的方法
  • 一种以编程方式将 msoLanguageIds 映射到用户自己语言的语言名称的方法

在 Word 中,我可以使用Language object,但在 PowerPoint 中似乎不存在。

或者,一种向用户显示将设置的对话框的方法DefaultLanguageID就足够了(我可以从那里获取所需的语言)。

我什至找不到通过 GUI 设置它的方法。显示类似的语言选择器并获得结果显然也可以完成这项工作。

目标平台是 Office 2007。

4

1 回答 1

3

在 PowerPoint 宏中使用包含 Language 对象的 Word Languages 集合怎么样?因此,您可以获得 MsoLanguageID 枚举值的语言名称。在这里您可以找到 Office 可用的语言。

' Powerpoint code
' add reference to word lib.
    
    Public Sub test()
        Dim wordAppliacation As New Word.Application
        wordAppliacation.Visible = False
        
        On Error Resume Next
        
        Dim languageId As MsoLanguageID
        For languageId = msoLanguageIDArabic To msoLanguageIDSpanishPuertoRico
            Debug.Print languageId & ", " & wordAppliacation.Languages(languageId).Name & ", " & wordAppliacation.Languages(languageId).NameLocal
        Next languageId
        
        On Error GoTo 0
        
        wordAppliacation.Quit
        Set wordAppliacation = Nothing
    
    End Sub

或者在 PowerPoint 2016 中可能就像这样:

    Dim lng As Word.language
    Dim lid As Long
    
    For Each lng In wordAppliacation.Languages
        lid = lng.id
        Debug.Print lid & ", " & wordAppliacation.Languages(lid).Name & ", " & wordAppliacation.Languages(lid).NameLocal
    Next lng

于 2013-02-03T15:15:00.390 回答