使用拼写检查时使用 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 的语法检查