【问题标题】:Use VBA to switch dictionaries when using spell check (MS Access)使用拼写检查时使用 VBA 切换字典 (MS Access)
【发布时间】:2014-07-13 10:54:55
【问题描述】:

我有这个 VBA 功能:当我退出一个字段时,它会自动启动拼写检查器。但是我有英语字段和法语字段,所以我正在寻找一种方法来为每个字段设置字典语言,以便 Access 知道要使用哪个字典/语法检查器。

例如,您将如何在此代码中包含法语?

Private Sub Field_Exit(Cancel As Integer)
       Dim strSpell
       strSpell = Field
       If IsNull(Len(strSpell)) Or Len(strSpell) = 0 Then
          Exit Sub
       End If
       With Field
           .SetFocus
           .SelStart = 0
           .SelLength = Len(strSpell)
       End With
       DoCmd.SetWarnings False
       DoCmd.RunCommand acCmdSpelling
       DoCmd.SetWarnings True
    End Sub

【问题讨论】:

    标签: vba ms-access ms-access-2013 spell-checking


    【解决方案1】:

    在互联网上拖网发现了这个:

    Application.SetOption "Spelling dictionary language", xxxx
    

    其中 xxxx 是此处列出的常量之一:http://msdn.microsoft.com/en-us/library/aa432635%28v=office.12%29.aspx

    应该可以在需要时来回拨动开关。

    【讨论】:

    • 我无法让它工作,我应该在哪里插入你的代码?我在第一行和第二行之间尝试了没有任何成功,其他地方也没有成功。你试过了吗? Application.SetOption "拼写字典语言", msoLanguageIDFrench
    • 您查看语言列表了吗?首先,msoLanguageIDBasque 不是有效的语言。其次,输入数字,而不是常量整数常量,而不是常量名称,因为 Access 无法识别它。至于放在哪里,这取决于您的应用程序,但在 DoCmd.RunCommand acCmdSpelling 之前的某个位置。我已经尝试过了,它可以改变字典,是的。
    • ^ 我的意思是 msoLanguageIDFrench 不是有效的语言,抱歉。复制/粘贴错误。
    【解决方案2】:

    据我所知,你不能这样做。

    字典是在 Windows 设置中指定的。我可以想象一种 API 方法来改变这一点,但我找到的最接近的是this page about .CheckSpelling(当指定的字典不匹配时,它可以让你指定一个备用字典)。

    【讨论】:

      【解决方案3】:

      我知道这是关于 Access,但为了供 Excel 用户将来参考,您实际上可以使用 VBA 更改语言设置。示例如下:

      Application.SpellingOptions.DictLang = msoLanguageIDEnglishCanadian
      Application.SpellingOptions.DictLang = msoLanguageIDFrenchCanadian
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-01
        相关资源
        最近更新 更多