Многоязыковае приложение на VBA
От: Flap Россия  
Дата: 08.05.06 18:27
Оценка:
Всем привет.

Проблема: как создать многоязыковое "приложене" для Exel на VBA. Есть книга эксель, состояшая примерно из 5 листов, на каждом по 50 — 100 надписей. Нужно на формочку кинуть чекбоксик с предложеными языками и в соответствии с выбором пользователся менять надписи с одного языка на другой и скрывать некоторые листы, специализированные для конкретного языка.

Мне интересен подхот к этой задаче. Как это все более грамотно разрулить с точки зрение организаци такого приложения.?
Re: Многоязыковае приложение на VBA
От: Sulla  
Дата: 08.05.06 19:00
Оценка:
Здравствуйте, Flap, Вы писали:

F>Мне интересен подхот к этой задаче. Как это все более грамотно разрулить с точки зрение организаци такого приложения.?


case наверное, а листы, которые не должны быть видны можно с помощью свойств листов делать невидимыми или с помощью ифоф

например так :



 if checkbox1.Value=true then
For Each sh In Sheets
sh.Visible = False
Next sh
Application.Sheets("sheet1").Visible = True
Application.Sheets("sheet1").Activate
end if
Re[2]: Многоязыковае приложение на VBA
От: Flap Россия  
Дата: 08.05.06 20:52
Оценка:
Здравствуйте, Sulla, Вы писали:
S>case наверное
case — это что вы имели ввиду..?

S>
S> if checkbox1.Value=true then
S>For Each sh In Sheets
S>sh.Visible = False
S>Next sh
S>Application.Sheets("sheet1").Visible = True
S>Application.Sheets("sheet1").Activate
S>end if   
S>


а можно каким нить образом на листы и в том числе на ячейки навешать атрибуты, или что то вроде того, по которым в дальнейшем смотреть и в цикле дизаблить с одним отрибутом, а показывть с другим..??
Re: Многоязыковае приложение на VBA
От: Andrew Merkulov Россия www.ibprovider.com
Дата: 10.05.06 08:01
Оценка:
Здравствуйте, Flap, Вы писали:

F> Всем привет.


F>Проблема: как создать многоязыковое "приложене" для Exel на VBA. Есть книга эксель, состояшая примерно из 5 листов, на каждом по 50 — 100 надписей. Нужно на формочку кинуть чекбоксик с предложеными языками и в соответствии с выбором пользователся менять надписи с одного языка на другой и скрывать некоторые листы, специализированные для конкретного языка.


F>Мне интересен подхот к этой задаче. Как это все более грамотно разрулить с точки зрение организаци такого приложения.?


1 подход - можно завести листы книги с ресурсами конкретного языка с примерной структурой:

Создать лист с ресурсами вида
название: res_Лист1
ячейки:

|Resource Name | Русский | Еnglish | .....
____________________________________________________
1 | resEnterPswd | Введите пароль | Enter password
2 | resEnterName | Введите имя | Enter name


В листе с данными:
в ячейках, свойствах листа, встроенных объектах (кнопках и т.п) определить метки типа
[%1%] — ссылается на первую строку а колонка определяется номером языка из списка, или лучше
[%resEnterPswd%] — ищется на соответствующем листе ресурсов соотетсвующий ресурс

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

2 подход
Для каждого языка использовать свою книгу, а уж логигу программы на vba вынести либо в xlt (шаблон на основании которого созданы все книги) либо в xla (Addin для Excel). Мне больше нравиться общий шаблон для всех книг-локализаций.

Получается, что вы отдельно изменяете шаблон (пишете программу) сразу для всех книг на разных языках (а языки уже добавляете отдельно)
Форму с выбором языка можно вынести в отдельную книгу которая будет запускаться и в зависимости от выбранного языка загружать нужную локализованную книгу


Немного обо мне, и моем круге
Мои профиль в LiveLib — книги
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.