Только что опубликовал код программного открытия VBA проекта (не SendKeys) с помощью WinAPI. Идея не моя (http://www.siddharthrout.com/2013/04/24/unprotecting-vba-project-password-using-a-password-that-you-...), но доработана мной Может кому пригодится, а может кто предложит лучший вариант. Сразу говорю: это не годится для взлома - нужно знать пароль. Код протестирован на Excel 2003 и 2013. API прописаны для версий x86 и x64 но тестировать - руки не дошли Основные требования в комментах в начале кода. Язык интерфейса VBE должен быть английским или нужно будет переписывать все капшоны окон, их текстбоксов и кнопок.
У пользователя Excel 2007. За неимением лучшей альтернативы в Excel 2007 (объекта Diagram УЖЕ(!) нет, а объект SmartArt ЕЩЕ(!) непрограммируем до Excel 2010), строю орг. структуру через объект Shape (см. вложение)
Все бы ничего, да такая неприятность: при первом запуске кода после открытия файла или внесения изменений в код, структура строится неверно - наслаиваются формы (рис. 1 в файле). При последующих запусках, все строится корректно (рис. 2 в файле). Проблема воспроизводится в версиях 2003, 2007 и 2010.
Видимо глаз замылился от долгого думания, не могу понять, почему это происходит. Буду признателен за свежий взгляд.
Найденные в форуме [и за его пределами] решения с ADODB.Stream и Windows API (MultiByteToWideChar) в моем случае не работают или я не нахожу как их адаптировать :)
Есть много текстовых файлов со подобным содержимым:
remindPassword = Восстановить пароль forgetPassword = Вы забыли свой пароль пользователя?
Сразу извиняюсь за то, что это не вопрос :-) Просто несколько дней назад в одном из форумов увидел такую задачу, а теперь не могу найти тему. Поскольку решение я таки наваял, то пожалуй выложу - вдруг кто-нибудь вспомнит в какой теме это было, или вообще кому-нибудь пригодится. Выкладываю пример из основного файл с кодом и 4-х баз данных. После нажатия кнопки нужно будет выбрать файлы баз данных для консолидации в сводной таблице. Пример упрощенный и в нем нет проверок на ошибки. Все тоже самое можно сделать и без VBA, создав подсоединение и команду SQL вручную.
В теории графов не силен. Дана организационная структура в виде кодов должностей (столбец A) и для каждой из них код должности руководителя (столбец B). Задача в том, чтобы максимально экономно проверить дерево на ошибки.
Дополнительные комментарии: - значения в столбце A должны быть уникальны - только президент может не иметь кода должности руководителя в столбце B (orphan node) - в столбце A, президента может и не быть, но тогда его код будет в столбце B его подчиненных, т.е. в этом случае orphan nodes не допускаются - одна должность (child) не может иметь более одного руководителя (parent), т.е. не матричная организация - остальное как в классической иерархии
Буду признателен даже за обрывочные идеи или указания на ресурсы. :-)