Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2009, 19:49   #1
Luckyrich
Новичок
Джуниор
 
Регистрация: 21.05.2009
Сообщений: 2
По умолчанию Определить язык текста средствами VBA

Здравствуйте уважаемые друзья,

Проблема следующая:

В Word 2003 макрос на VBA создает шаблон письма. Есть вариант выбора двуязычного шаблона (русский - английский). Т.е., в этом случае, создается сразу два письма в одном документе 1. на русском и 2., его копия-перевод, на английском.

Теперь собственно проблема:
Нужна часть скрипта которая бы проверяла на каком языке написан выделенный фрагмент текста в английской версии.


Например, если на русском, то выдать сообщение пользователю, что текст на русском языке и прекратить выполнение процедур, если на английском, то продолжить выполнение операций.

Необходимо, чтобы в выделенном фрагменте текста были проверенны все символы (буквы) на соответствие английский - русский.

Причина: в этой части шаблона располагаются наименования компаний, которые в русской версии письма могут быть как на русском языке, так и на английском. Макрос автоматически вставляет эти данные в обе части документа и, в том случае, если в английской части оказался русский текст, то другая часть скрипта предложит транслитерировать его или же ввести оригинальное наименование на английском языке. НО! До этого этапа необходимо определить язык текста (рус или англ).

Буду чрезвычайно благодарен любой помощи!

С уважением,

Николай

Последний раз редактировалось Luckyrich; 21.05.2009 в 19:51. Причина: ошибки в тексте
Luckyrich вне форума Ответить с цитированием
Старый 21.05.2009, 20:10   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Цитата:
Сообщение от Luckyrich Посмотреть сообщение
Буду чрезвычайно благодарен любой помощи!
Ну вот что пока нащупал:
Код:
MsgBox Application.Language
показывает 1049, если язык Word русский.

Есть свойство
Код:
Selection.LanguageDetected
(равно False, когда язык не определён, и когда язык определён — True).

Вообще-то надо попробовать включить запись макросов — и затем определить язык в точке ввода. Как вам идейка? Ну я сам попробовал, и ничего нового:
Код:
Selection.LanguageID = wdRussian
А wdRussian = 1049. Осталось применить это при побуквенном просмотре текста:
Код:
if Selection.LanguageID = wdRussian then 'тут вам придётся самому подумать - что именно делать'
(Только больше не цитируйте меня, постов пока всего два, и ясно что к чему. И шрифт для сайта знакомств лучше сделать обычным - кто близорук, возьмёт лупу!)

Последний раз редактировалось Sasha_Smirnov; 21.05.2009 в 21:14.
Sasha_Smirnov вне форума Ответить с цитированием
Старый 21.05.2009, 20:21   #3
Luckyrich
Новичок
Джуниор
 
Регистрация: 21.05.2009
Сообщений: 2
По умолчанию Спасибо!

Цитата:
Сообщение от Sasha_Smirnov Посмотреть сообщение
Ну вот что пока нащупал:
Код:
MsgBox Selection.LanguageID
показывает 1049, если язык Windows русский. Язык Word не определил (пока).

Есть свойство
Selection.LanguageDetected
(равно False, когда язык не определён, и когда язык определён — True).

Но вот что с этим со всем делать...
Большое Вам спасибо Александр Смирнов!

К сожалению, у меня небольшой опыт в программировании и, что делать с перечисленными выше данными я тоже не знаю...

Но похоже в первом случае мы определим язык ввода, а во втором проверим тот факт был ли определен язык или нет...

Само по себе переключение языка ввода или раскладки клавиатуры не составляет проблемы, равно как и определение факта этих действий.


НЕОБХОДИМО перебрать все буквы выделенного фрагмента и проверить их на принадлежность к русскому или английскому языку по кодировке символа или как-то ещё.


Тем не менее, огромное Вам спасибо за участие!!!

С уважением,

Николай
Luckyrich вне форума Ответить с цитированием
Старый 23.05.2009, 12:55   #4
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию

Тем временем я обнаружил пост*, где я уже пользовался ветвлением алгоритма в зависимости от раскладки клавиатуры (то есть языка ввода). (В долговременной памяти сей навык, увы, не осел!)
_____________________
* посмотрите и его, и под ним
Sasha_Smirnov вне форума Ответить с цитированием
Старый 30.05.2009, 11:03   #5
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
Смех

Ну вот видите же, шрифт а-ля сайт знакомств не катит! Даже у Успешных и Богатых.

Последний раз редактировалось Sasha_Smirnov; 30.05.2009 в 11:31.
Sasha_Smirnov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как средствами VBA экспортировать данные из Excel в Word? Pavel_Ine Microsoft Office Excel 3 20.04.2009 14:14
Неразрывный пробел средствами VBA tolikman Microsoft Office Word 5 23.03.2009 05:11
Сжатие рисунков средствами VBA EducatedFool Microsoft Office Excel 1 17.01.2009 19:12
Условное форматирование средствами VBA Acro Microsoft Office Excel 5 01.12.2008 16:40
Как средствами VBA получить доменное имя пользователя? Прохожий Microsoft Office Excel 3 04.10.2008 18:28