Добрый день. Появился вопрос. На сегодняшний день есть масса макросов используемый для работы. После попыток группировки через формы и т.д. появилась идея все же создать пусть и минимальную программу через Visual Studio через которую и можно будет запускать функции предусмотренные макросом. Пример желаемого: после запуска программы выбирается сценарий выполнения по которому должны выбраться файлы, которые после проходят весь процесс забитый в макросе, после чего получаем итоговую таблицу или результат. Собственно вопрос: возможно ли готовый код макроса как-то использовать при создании программы? Было самопредложение использовать программу для запуска excel книги и автоматический запуск макроса, но что-то смущает. Порассуждаем?
а что тут рассуждать? сделать можно как угодно, — весь функционал чисто на макросах, часть на макросах и часть в VS, всё полностью на VS всё зависит от того, в чем вы лучше разбираетесь, - если в VS, то можно сделать надстройку для Excel в VSTO
Цитата
возможно ли готовый код макроса как-то использовать при создании программы?
как использовать хотите? можно этот макрос экселевский программно запустить, а можно его переписать под VS
О чем? То, что Вы написали выглядит как-то смутно...Что куда хотите переместить и по какой причине? У Вас перемешаны понятия и не проглядывается четкой логики в алгоритме. Вы полностью хотите все перенести на VS? Или часть? Если часть - какой смысл? В чем видите преимущество?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
The_Prist, в этом то и вопрос, как лучше сделать. смысл в том, что всем, что есть на сегодняшний день пользуются люди слабо представляющие что такое "ВПР" поэтому и стоит вопрос в том, что бы сделать из того, что есть что-то такое, что сложно сломать и легко пользоваться. В этом и вопрос, что нужен совет, как лучше это все реализовать. Проще всего наверное использовать существующие макросы которые будут запускаться при запуске определенных книг?
Александр Моторин написал: Тогда уж на Visual Studio 6.0 писать программу
Александр, подскажите в каком IDE (если я правильно выразилась) это делать? в смысле, что есть редактор для VB6? (кроме текстового файла и сохранения его с расширением vb, насколько знаю)... а то всё хочется попробовать - не могу найти где? ... Заранее спасибо.
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
На VS можно написать исполняемое приложение(.exe), которое может быть блокировано политикой компании. Либо сделать отдельную книгу, в которой будут все необходимые коды, доступ к которым будет закрыт наглухо. В файле их как бы не будет и посмотреть будет нельзя. Такой подход сложен в отладке, если у конченого пользователя возникнет ошибка, поэтому к отлову ошибок в реальном режиме работы придется подойти чуть более основательно, чем в VBA.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
А что если сделать (.exe) с которого будут запускаться определенные книги в каждой из которых зашит макрос с определенными операциями. книги и операции при этом не пересекаются. Видится такое решение довольно быстрой реализацией и не потребует от Пользователя перебирать в ручную книги с зашитыми макросами. Как Вам такой вариант? Или все же перебрать существующие макросы, объединить из через формы и сделать одной большой надстройкой?
Он так и называется VB6 Что-то похожее я делал. Для настройки запускется .ехе с расширением (либо в самой программе по кнопке и паролю вход в настройки) Настройки запоминаются и используются при работе программы до следующего изменения. Но это уже никак не относится к данному разделу и может біть расценено как оффтоп На счёт скрытия кодов: До сих пор более-менее реальную защиту встречал в xlam. Остальное - защита от честных людей
Александр, спасибо... - я поправила слово IDE на слово API - всё путаю их иногда, да и значение очень расплывчато понимаю (но, наверно, имела ввиду API)... спасибо за ответ - ничего не поняла - буду искать софтину по вашему совету... P.S. если кто-то уверен, что я спрашивала про IDE - поправьте - снова внесу изменения в пост#6
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
JeyCi, API тоже не то. API это набор функций, которые ОС предоставляет программисту. В них нельзя ничего изменить. Я предположу, что Вы в принципе имели ввиду редактор кода(среду разработки, где код пишется и преобразуется уже в сборку, exe или иные файлы). В VBA код компилируется непосредственно перед выполнением. А вот IDE здесь как раз подходит. Расшифровывается как Integrated Development Environment - Интегрированная среда разработки.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
С Вистой совместимость есть, хотя немного неполная. А именно - при размещении контроллов рамка прорисовывается где-то раз в секунду, что иногда неудобно. А больше никаких проблем за полгода не было. Увы, но с Windows 7 проблем значительно больше - часть контроллов жалуются на отсутствие лицензии, и отказываются работать... А также, при каждом запуске VB почему-то появлялись надписи "Идет настройки Microsoft Word 2007"...
вопрос, ребята, остаётся только один: vb2010 иногда вижу обсуждается (рекомендуют лучше, чем vb6) - может, кто подскажет - это тот, который в vs2010 (для vb)... чтобы с версиями путаницы не было... в котором, по совету Александра - переделывать макросы vba сильно придётся, насколько поняла...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
там по линку Wiki (пост12) - есть и другие "Наиболее известные API"... как vba к ним относится лично я не знаю...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Alexander88 , спасибо.за инфо.. в 2х словах разобралась, об остальном подумаю пока ... а то ещё погонят нас всех в др. раздел (в курилку)...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
При переделке в VB6 (кстати на 10 и восьмерке стало без каких либо проблем и танцев) столкнулся со следующим вопросом. Отрабатывающий ранее макрос по замене with Selection .replace ... при компиляции и выполнении уже в VB6 ругается что "не найдено что нужно менять или лист под защитой", при этом после каждого нажатия "ОК" заменяет что от него требуется. мммагия? какие будут мысли?
Использую VBA для решения рабочих вопросов. Чуть больше чем любитель, так что прошу прощение за глупые вопросы.
Будут мысли отправить Вас изучать объектную модель приложений. Нет в VB объекта Selection - это объект Excel. И к Excel надо подключаться. Как Вы это делаете и делаете ли - мы не знаем. А Вы видимо и подавно. Поэтому главный совет: начать с самого начала - с изучения приложения, в котором работаете и того, как чего устроено вообще. Чтобы было понятно о чем речь: Как из Excel обратиться к другому приложению Вполне должно подойти, чтобы Вы поняли, что пытаетесь обработать в VB то, чего он не знает.
Ну и вообще-то вопрошать от нас мысли, выложив две строки кода и скупое пояснение где это и как выполняется без конкретных ошибок - мыслей Вам сейчас накидают, только к решению они мало будут иметь отношение.
Дабы не обременять неокрепшую в плане VBA психику человека :-) На данном этапе чем проще объяснить - тем лучше. Ну и все же API это именно зарегистрированные в ОС функции. Поэтому как бы она и предоставляет к ним доступ и выполняет тоже она. Нельзя их использовать вне ОС и без её разрешения.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...