Страницы: 1
RSS
Перенос макроса в программу VS
 
Добрый день. Появился вопрос. На сегодняшний день есть масса макросов используемый для работы. После попыток группировки через формы и т.д. появилась идея все же создать пусть и минимальную программу через Visual Studio через которую и можно будет запускать функции предусмотренные макросом.
Пример желаемого: после запуска программы выбирается сценарий выполнения по которому должны выбраться файлы, которые после проходят весь процесс забитый в макросе, после чего получаем итоговую таблицу или результат.
Собственно вопрос: возможно ли готовый код макроса как-то использовать при создании программы?
Было самопредложение использовать программу для запуска excel книги и автоматический запуск макроса, но что-то смущает.
Порассуждаем?
Изменено: Olegersohn - 29.03.2015 12:37:50
Использую VBA для решения рабочих вопросов. Чуть больше чем любитель, так что прошу прощение за глупые вопросы.
 
Цитата
Порассуждаем?
а что тут рассуждать?
сделать можно как угодно, — весь функционал чисто на макросах, часть на макросах и часть в VS, всё полностью на VS
всё зависит от того, в чем вы лучше разбираетесь, - если в VS, то можно сделать надстройку для Excel в VSTO

Цитата
возможно ли готовый код макроса как-то использовать при создании программы?
как использовать хотите?
можно этот макрос экселевский программно запустить, а можно его переписать под VS  
 
Цитата
Olegersohn написал: Порассуждаем?
О чем?
То, что Вы написали выглядит как-то смутно...Что куда хотите переместить и по какой причине? У Вас перемешаны понятия и не проглядывается четкой логики в алгоритме. Вы полностью хотите все перенести на VS? Или часть? Если часть - какой смысл? В чем видите преимущество?
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Тогда уж на Visual Studio 6.0 писать программу. Почти всё можно использовать без изменений.
В версиях выше практически всё придётся переделывать
 
The_Prist, в этом то и вопрос, как лучше сделать. смысл в том, что всем, что есть на сегодняшний день пользуются люди слабо представляющие что такое "ВПР" поэтому и стоит вопрос в том, что бы сделать из того, что есть что-то такое, что сложно сломать и легко пользоваться.
В этом и вопрос, что нужен совет, как лучше это все реализовать. Проще всего наверное использовать существующие макросы которые будут запускаться при запуске определенных книг?
Изменено: Olegersohn - 29.03.2015 14:11:12
Использую VBA для решения рабочих вопросов. Чуть больше чем любитель, так что прошу прощение за глупые вопросы.
 
Цитата
Александр Моторин написал: Тогда уж на Visual Studio 6.0 писать программу
Александр, подскажите в каком IDE (если я правильно выразилась) это делать? в смысле, что есть редактор для VB6? (кроме текстового файла и сохранения его с расширением vb, насколько знаю)... а то всё хочется попробовать  - не могу найти где? :) ... Заранее спасибо.
Изменено: JeyCi - 29.03.2015 15:12:13
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
На VS можно написать исполняемое приложение(.exe), которое может быть блокировано политикой компании.
Либо сделать отдельную книгу, в которой будут все необходимые коды, доступ к которым будет закрыт наглухо. В файле их как бы не будет и посмотреть будет нельзя. Такой подход сложен в отладке, если у конченого пользователя возникнет ошибка, поэтому к отлову ошибок в реальном режиме работы придется подойти чуть более основательно, чем в VBA.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
А что если сделать (.exe)  с которого будут запускаться определенные книги в каждой из которых зашит макрос с определенными операциями. книги и операции при этом не пересекаются. Видится такое решение довольно быстрой реализацией и не потребует от Пользователя перебирать в ручную книги с зашитыми макросами. Как Вам такой вариант? Или все же перебрать существующие макросы, объединить из через формы и сделать одной большой надстройкой?
Изменено: Olegersohn - 29.03.2015 14:16:45
Использую VBA для решения рабочих вопросов. Чуть больше чем любитель, так что прошу прощение за глупые вопросы.
 
Цитата
что есть редактор для VB6?
Он так и называется VB6
Что-то похожее я делал. Для настройки запускется .ехе с расширением (либо в самой программе по кнопке и паролю вход в настройки)
Настройки запоминаются и используются при работе программы до следующего изменения.
Но это уже никак не относится к данному разделу и может біть расценено как оффтоп
На счёт скрытия кодов: До сих пор более-менее реальную защиту встречал в xlam.
Остальное - защита от честных людей
Изменено: Александр Моторин - 29.03.2015 14:11:02
 
Александр, спасибо... :) - я поправила слово IDE на слово API - всё путаю их иногда, да и значение очень расплывчато понимаю (но, наверно, имела ввиду API)... спасибо за ответ - ничего не поняла - буду искать софтину по вашему совету...
P.S. если кто-то уверен, что я спрашивала про IDE - поправьте - снова внесу изменения в пост#6
Изменено: JeyCi - 29.03.2015 14:25:43
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
JeyCi, API тоже не то. API это набор функций, которые ОС предоставляет программисту. В них нельзя ничего изменить.
Я предположу, что Вы в принципе имели ввиду редактор кода(среду разработки, где код пишется и преобразуется уже в сборку, exe или иные файлы). В VBA код компилируется непосредственно перед выполнением. А вот IDE здесь как раз подходит. Расшифровывается как Integrated Development Environment - Интегрированная среда разработки.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist написал: API это набор функций, которые ОС предоставляет программисту
Интерфейс программирования приложений  - application programming interface

Цитата
Integrated Development Environment - Интегрированная среда разработки
Интегрированная среда разработки

The_Prist, спасибо! - буду разбираться... значит в пост#6 опять меняю на IDE 8) - "тернист путь знаний"...
Изменено: JeyCi - 29.03.2015 15:46:08
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
по VB6 сделаю репост с др форума:
Скрытый текст

вопрос, ребята, остаётся только один:
vb2010 иногда вижу обсуждается (рекомендуют лучше, чем vb6) - может, кто подскажет - это тот, который в vs2010 (для vb)... чтобы с версиями путаницы не было... в котором, по совету Александра - переделывать макросы vba сильно придётся, насколько поняла...
Изменено: JeyCi - 29.03.2015 18:47:41
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
The_Prist написал: API это набор функций, которые ОС предостав ляет программисту.
А почему только ОС?
There is no knowledge that is not power
 
Цитата
Johny написал: А почему только ОС?
там по линку Wiki (пост12) - есть и другие "Наиболее известные API"... как vba к ним относится лично я не знаю...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
JeyCi,
В Visual Studio 6.0 - VB6, в более поздних версиях Visual Studio уже VB.NET
 
Alexander88 , спасибо.за инфо.. в 2х словах разобралась, об остальном подумаю пока :)... а то ещё погонят нас всех в др. раздел (в курилку)...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
Цитата
JeyCi написал:
vb2010 иногда вижу обсуждается (рекомендуют лучше, чем vb6) - может, кто подскажет - это тот, который в vs2010 (для vb).
Он самый.
Цитата
JeyCi написал:
переделывать макросы vba сильно придётся, насколько поняла.
Нет,не сильно.
Если в макросе все переменные объявлены и он написан грамотно,то время переделки исчисляется минутами.
 
Цитата
Doober написал: время переделки исчисляется минутами.
:) это не про меня пока что... значит, есть куда стремиться (в VS), раз уж под win7 - vb6 не очень good...
P.S. Editor.NET - альтернатива VS
Изменено: JeyCi - 29.03.2015 21:58:16
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
 
При переделке в VB6 (кстати на 10 и восьмерке стало без каких либо проблем и танцев) столкнулся со следующим вопросом.
Отрабатывающий ранее макрос по замене
with Selection
.replace ...
при компиляции и выполнении уже в VB6 ругается что "не найдено что нужно менять или лист под защитой", при этом после каждого нажатия "ОК" заменяет что от него требуется. мммагия?
какие будут мысли?
Использую VBA для решения рабочих вопросов. Чуть больше чем любитель, так что прошу прощение за глупые вопросы.
 
Цитата
Olegersohn написал: какие будут мысли?
Будут мысли отправить Вас изучать объектную модель приложений. Нет в VB объекта Selection - это объект Excel. И к Excel надо подключаться. Как Вы это делаете и делаете ли - мы не знаем. А Вы видимо и подавно. Поэтому главный совет: начать с самого начала - с изучения приложения, в котором работаете и того, как чего устроено вообще.
Чтобы было понятно о чем речь: Как из Excel обратиться к другому приложению
Вполне должно подойти, чтобы Вы поняли, что пытаетесь обработать в VB то, чего он не знает.

Ну и вообще-то вопрошать от нас мысли, выложив две строки кода и скупое пояснение где это и как выполняется без конкретных ошибок - мыслей Вам сейчас накидают, только к решению они мало будут иметь отношение.
Цитата
Johny написал: А почему только ОС?
Дабы не обременять неокрепшую в плане VBA психику человека :-) На данном этапе чем проще объяснить - тем лучше. Ну и все же API это именно зарегистрированные в ОС функции. Поэтому как бы она и предоставляет к ним доступ и выполняет тоже она. Нельзя их использовать вне ОС и без её разрешения.  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Страницы: 1
Наверх