![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 01.06.2013
Сообщений: 14
|
![]()
Здравствуйте.
Прошу Вашей помощи так как самостоятельно разобраться не смогу, видимо( Передо мной встала задача создания надстройки уровня приложения для Word и Excel. Есть три макроса на VBA запускаемые последовательно (Word-Excel-Word) и обрабатывающие некий массив. Необходимо создать вкладку в ленте с кнопками, запускающими соответствующие макросы. Т.е. получается 2е надстройки (для каждого офис-приложения). Для создания использую Visual Studio 2010 (нуб). Проблема в том, не получается присвоить некоторой кнопке на панели выполнение определенного макроса. По всей видимости от меня ожидается код на VB, а не на VBA. Указывает на ошибку в таких строках как: Application.ScreenUpdating = False ............. myView = ActiveWindow.View.Type ActiveWindow.View.Type = wdNormalView ............. With Selection.Find ............. Selection.Find.Execute(Replace:=wdReplaceAll) Подскажите, пожалуйста, как решить данную проблему. Как принудить выполнять VBA код или если это невозможно - как переписать на VB? P.S.: Есть ли возможность написать некую "оболочку" которая могла бы использовать функционал офисного пакета при этом не открывая эти приложения явно. По принципу - задал все необходимые данные и ждешь результата не созерцая окон Word и Excel и не нажимая лишних клавиш). Подскажите в какую сторону копать) Спасибо) |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]()
psybehemoth, а такой макрос у вас запускается?
Код:
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 01.06.2013
Сообщений: 14
|
![]()
Такой запускается
только полностью выглядит так: Код:
|
![]() |
![]() |
![]() |
#4 | |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]()
psybehemoth, но вы писали в сообщении #1:
Цитата:
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 01.06.2013
Сообщений: 14
|
![]()
Получилось запустить предложенный Вами простейший макрос.
Когда же я пытаюсь вставить свой (100% работоспособный, без ошибок) Studio на него ругается. Вот к примеру на строку в самом начале кода: Application.ScreenUpdating = False "Application" не объявлен.может быть недоступен из-за своего уровня защиты." и так не только с ним Пришил PrintScrin http://s41.radikal.ru/i093/1306/c5/d678389fee6a.jpg |
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]()
Пункт 1
psybehemoth, скриншоты можно выкладывать прямо на Форум. Мне, например, не нравится ходить по файлообменникам, т.к. там можно неприятные рисунки увидеть. На Форуме рисунки плохо выкладываются, поэтому рисунки нужно архивировать. Пункт 2 Вы можете запустить макрос, который обрабатывает Word-документ из программы "Excel"? Давайте пока не будем рассматривать ваш конкретный код, а добьёмся, чтобы хоть вообще какой-то код стал работать, например этот: Код:
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 01.06.2013
Сообщений: 14
|
![]()
К сожалению, такой код уже не проходит.
ссылаясь на: "Application" не объявлен. Может быть недоступен из-за своего уровня защиты. опять же скрин: |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]()
Добейтесь, чтобы у вас заработал этот код из программы "Excel". Когда у вас это получится, то вы уже будете иметь представление, как из одной программы управлять другой программой - это называется разными словами: OLE, COM, автоматизация.
Код:
Код:
Последний раз редактировалось Скрипт; 02.06.2013 в 09:14. |
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 01.06.2013
Сообщений: 14
|
![]() Цитата:
Вопрос же мой был несколько в ином (перефразирую): 1. Возможно ли в Visual Studio при создании надстройки уровня приложения для Word (Excel) использовать готовый код макроса на VBA? 2. Если "да" - то почему не работает и нужно ли производить какие-либо изменения? Задумываться о взаимодействии двух надстроек можно будет после. Сейчас же и одной не выходит. А о том как связать два макроса в разных приложениях я уже в курсе, опять же. как-то так... P.S.: за ответы спасибо в любом случае) |
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 24.12.2012
Сообщений: 776
|
![]()
psybehemoth, в сообщении #7 есть скриншот. Вы пишите в коде:
Код:
В коде из сообщения #8 вот так узнаются данные о документе: Код:
Последний раз редактировалось Скрипт; 02.06.2013 в 10:27. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Visual Studio 2010 c# | blacknight07 | C# (си шарп) | 1 | 03.04.2013 16:29 |
Visual Studio 2010 | Lexa567 | Visual C++ | 1 | 21.01.2013 15:25 |
Visual Studio 2010 и NF 2.0 | m0m0k0 | Visual C++ | 0 | 20.06.2012 08:42 |
Visual Studio 2010 и SharePoint 2010 | glinka-82 | Общие вопросы .NET | 0 | 21.03.2012 22:37 |
Expression Studio и Visual Studio 2010 ждать ли русские версии? | Casper-SC | Свободное общение | 31 | 25.05.2010 14:31 |