使用拼写检查时使用 VBA 切换字典 (MS Access)

Posted

技术标签:

【中文标题】使用拼写检查时使用 VBA 切换字典 (MS Access)【英文标题】:Use VBA to switch dictionaries when using spell check (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

【问题讨论】:

【参考方案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

【讨论】:

以上是关于使用拼写检查时使用 VBA 切换字典 (MS Access)的主要内容,如果未能解决你的问题,请参考以下文章

MS Access 2013:通过 VBA 使用 MS Word 的语法检查

访问 VBA 拼写检查子表单的一个字段

如何通过代码拼写检查将所有未知单词添加到字典中,或者当语言不是英语时忽略它们?

Eclipse 拼写检查平台字典

MS Access vba 保存按钮错误 3021

在 WHERE 子句中使用 REPLACE 检查拼写排列 - MS SQL