Можно ли в MS Excel установить язык содержимого ячеек, например, для каждого столбца? Целью было бы, среди прочего, сделать правильные проверки орфографии, когда содержимое многоязычно (например, словарь), как мы можем сделать в MS Word.
2 ответа
Вот быстрый и грязный макрос, который, мы надеемся, можно адаптировать к вашим потребностям. Как и сейчас, он запустит проверку орфографии на американском английском в Column A
, а затем запустит проверку орфографии на мексиканском испанском в Column B
Вы можете найти коды для поддерживаемых языков здесь.
Sub multilanguageSC()
Dim rngEng As Range, rngSpa As Range
'Set ranges to check for each language.
Set rngEng = ActiveSheet.Range("A:A")
Set rngSpa = ActiveSheet.Range("B:B")
'Set spelling dictionary language to English (US).
Application.SpellingOptions.DictLang = 1033
'Check spelling for designated English range.
rngEng.CheckSpelling
'Set spelling dictionary language to Spanish(Mexico).
Application.SpellingOptions.DictLang = 2058
'Check spelling for designated Spanish range.
rngSpa.CheckSpelling
'Set spelling dictionary back to default setting.
Application.SpellingOptions.DictLang = Application.LanguageSettings.LanguageID(msoLanguageIDUI)
End Sub
Да, это может быть сделано. Вот пример для японского и английского ввода. (Вы можете сделать различные настройки для типа японского ввода, который вы хотите разрешить.)
Я использую Правила ввода на вкладке Данные. (Я должен установить "Опции", "Язык", "Язык редактирования" на "Японский")
Просто перейдите на вкладку "Данные" и затем выберите "Условные правила" из группы "Инструменты данных". Теперь справа будет новая вкладка "Японский ввод". Установите для одного столбца значение «Вкл.», Для другого значение «Выкл.», И все готово.
Похоже, они могут быть сделаны с VB тоже. Не уверен насчет диапазонов ячеек.
Sub Cond()
'
' Cond Macro
'
'
With Selection.Validation
.Delete
.Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator _
:=xlBetween
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.IMEMode = xlIMEModeOn
.ShowInput = True
.ShowError = True
End With
End Sub