Коллеги спрашивают: "А как запустить VBA-программу (макрос в терминах АутоКАДа) на исполнение?".
Придется повториться (я уже несколько раз излагал эту страшную тайну от АутоДеск):
9. Подробнее о запуске на исполнение VBA-программ и о настройке иконок в AutoCAD'е:
===================================================================================
Самый простой способ (но и самый нудный):
9а. Чтобы запустить ваши VBA-макросы:
* Запустите AutoCAD и откройте новый чертеж.
* Выберите Tools/Macro/Run Macro
* Выберите макрос из падающего окна (в этом окне надо найти местоположение файла макроса на диске).
* Выберите кнопку Run.
или так:
* Выберите Tools/Macro/Open VBA Project
* Выберите макрос из падающего окна (в этом окне надо найти местоположение файла макроса на диске).
* поставьте галочку-флажок "Open Visual Basic Editor"
* в окне VB-редактора выберите стартовую процедуру (Sub) и нажмите кнопку Run
В этом случае загружается и VBA-программа и VB-редактор. В этом режиме пишут/читают/редактируют/отлаживают VBA-программы.
9б. Посложнее (надо создать СВОЮ панельку меню и вставить в нее кнопочки):
Адрес "чисто конкретной" страницы, как это делается - http://vbamaker.narod.ru/index.html
Приведу ее текст, но страничка лучше, бо там с картинками.
~~~~~~~~~~~~~~
НАЧАЛО ЦИТАТЫ!
Создание кнопки для вызова макроса
Откройте диалоговоеокноCustomize(Настройка):View(Вид )> Toolbars(Панели инструментов) или щелкните (кликните) правой кнопкой мыши на любой панели инструментов, и в появившимся контекстном меню выберите Customize(Настройка).
Перейдите на вкладку Commands(Команды), в поле Categories (Категории) выберите All Commands (Все команды) или User Defined(Определенная пользователем). В окне справа выберите понравившуюся Вам кнопку и перетащите ее (не отпуская левой кнопки мыши) на экран или на любую существующую панель инструментов.
Можно, также, перейдя в том же диалоговом окне Customize (Настройка) на вкладку Toolbars(Панель инструментов), создать Новую панель инструментов(New Toolbar) с помощью кнопки New(Новая).
Макрос, связанный с кнопкой
Не закрывая диалоговое окно Customize(Настройка) щелкните (кликните) левой кнопкой мыши на созданной Вами кнопке, после чего вы должны очутится на вкладке Button Properties(Свойства кнопки).
В поле Name(Имя) задайте имя своей кнопки. В поле Description(Описание), можно задать пояснение, которое будет отображаться в строке состояния, когда курсор подведен к кнопке). В поле Macro associated with this button (Макрос связанный с этой кнопкой) должен быть записан текст для вызова макроса. Например:
^C^C-vbarun "C:/VBA Macro/MyMacro.dvb!Module1.Example"
Этот текст, по сути, сам является макросом, поэтому необходимо придерживаться определенных правил и использовать спецсимволы, при его написании. Здесь:
^C^C - Отменяет предыдущую команду.
-vbarun - Команда AutoCAD для запуска макроса
MyMacro.dvb!- Имя файла с расширением *.dvb (восклицательный знак обязателен)
Module1- Имя модуля проекта
Example- Имя процедуры
Обратите внимание, обратная косая черта “\” означает паузу в макросе, поэтому при указании пути к файлу нужно использовать косую черту ”/”. Кавычки необходимо ставить, если внутри имен есть пробелы.
Путь поиска файла поддержки
Если макрос поместить в папку Support(С:/Program Files/AutoCAD 200…/Support), то путь к файлу указывать не надо. Достаточно написать:
^C^C-vbarun MyMacro.dvb!Module1.Example
Также можно поместить макрос в любую другую папку, но при этом нужно указать путь поиска файла поддержки. Для этого необходимо:
Открыть диалоговое окно Options(Настройка): Tools(Инструменты)> Options(Настройка), или вызвать его при помощи контекстного меню, вызываемого по щелчку правой кнопкой мыши.
Перейти на вкладку Files(Файлы) и в поле Search paths, file names, and file locations(Пути Поиска, файловых имен, и размещения файлов) выберите Support File Search Path(Путь поиска файла поддержки). Дальше необходимо нажать кнопку Add(Добавить), затем с помощью кнопки Browse(Обзор) выбрать, интересующую Вас папку. Теперь, при написании текста макроса для кнопки, не нужно указывать путь к файлу.
Создание изображения для кнопки
Откройте диалоговое окно Customize(Настройка):View(Вид) > Toolbars(Панели инструментов) и передите на вкладку Button Properties(Свойства кнопки). С помощью щелчка мыши выберите кнопку на экране или на панели инструментов, для которой нужно изменить изображение. На той же вкладке Button Properties(Свойства кнопки), справа, в области Button Image (Пиктограмма) можно выбрать картинку, в списке с полосой прокрутки.
С помощью кнопки Edit(Редактировать) открывается окно Button Editor(Редактор кнопки).
Здесь можно изменить изображение кнопки.Так же с помощью кнопки Open(Открыть) можно найти на жестком диске и открыть существующее изображение с расширением *.bmp , для последующего редактирования и сохранения.
КОНЕЦ ЦИТАТЫ!
В цитате я намеренно пропустил кусок под заголовком "Автоматическая загрузка макроса", на мой взгляд это коварный путь.
Если пользоваться VBA-программами приходится часто, то лучше один раз обустроить дополнительную панельку меню.
Конечно удобнее поместить и VBA-программы и иконки в каталог .\Support, или .\Express - они прописаны в путях поиска А-Када.
Командная строка для иконки (в ее свойствах, когда поместите иконку в любую панельку меню АвтоКАДа) такая:
^C^C_-vbarun c:\\temp\\VBA_Work\\DrawSurface_1.dvb!Module1.DrawSurface
Это для ЛЮБОГО местоположения VBA-файла,
а для путей AutoCAD .\Support, или .\Express строка короче: ^C^C_-vbarun DrawSurface_1.dvb!Module1.DrawSurface
Если знаете как ввести текст в командную строку A-CAD, тогда так:
Command: (command "_-vbarun" "c:\\temp\\VBA_Work\\DrawSurface_1.dvb!Module1.DrawSurface")
Примечание:
Вместо temp и VBA_Work пропишите СВОЙ путь к реальному месту файла DrawSurface_1.dvb или ExportACADtoCREDO.dvb
Для выгрузки приложения VBA строка в свойствах иконки UnloadVBA.BMP такая: ^C^C_VBAMAN
(Эта иконка не связана ни с какой программой, но по ее свойствам вызывается функция-диалог AutoCADа).
Появляется диалог VBA-менеджера, где указываете какое приложение выгрузить и жмете кнопку UNLOAD.
По другому пока не знаю.
9в. АЛЬТЕРНАТИВНЫЙ МЕТОД: Настройка своей панели инструментов в АутоКАД'е:
==========================================================================
В ACAD2000 под Windows98 моя панелька инструментов выглядит так:
В файле C:\Program Files\ACAD2000\Support\acad.mns вставить строки:
**GEOD_SNK
ID_Geod_SNK_0 [_Toolbar("Geod_SNK", _Left, _Show, 0, 2, 1)]
ID_UserButton_0 [_Button("Draw_Surface", "RCDA.bmp", "RCDATA_16_SELADD")]^C^C-vbarun DrawSurface_1.dvb!Module1.DrawSurface
ID_UserButton_1 [_Button("ExportACADtoCREDO", "RCDA1352.bmp", "RCDATA_16_BLANK")]^C^C-vbarun ExportACADtoCREDO.dvb!Module1.ExportACADtoCREDO
ID_UserButton_2 [_Button("Strelka9", "RCDA5184.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Strelka9.dvb!Module1.PlineCalc
ID_UserButton_3 [_Button("Axe_and_Points", "ICON.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Axe&Points_1.dvb!Module1.AxeAndPoints
ID_UserButton_4 [_Button("Zasechka2", "ICON5724.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Zasechka2-2.dvb!Module1.Main
ID_UserButton_5 [_Button("Export-SDR", "RCDA5061.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Export-SDR.dvb!Module1.Main
ID_UserButton_6 [_Button("Otkos_3d", "Otkos_2.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Otkos_3d.dvb!Module1.Offset3dPoly
ID_UserButton_7 [_Button("Road1", "RCDA5200.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Road1.dvb!Module1.Main
ID_UserButton_8 [_Button("Unload_VBA", "RCDA5062.bmp", "RCDATA_16_BLANK")]^C^C_vbaman
Здесь прописаны строки моих VBA-программ с их иконками-кнопками и кнопка выгрузки VBA-программ (она состоит только из команды).
Вставлять их надо непосредственно перед строками:
***IMAGE
**IMAGE_3DOBJECTS
В ACAD2005 под Windows_XP это выглядит примерно так:
C:\Documents and Settings\Администратор\Application Data\Autodesk\Autodesk Land Desktop 2005\R16.1\enu\Support\acad.mns
**GEOD_SNK
ID_Geod_SNK_0 [_Toolbar("Geod_SNK", _Left, _Show, 0, 2, 1)]
ID_UserButton_0 [_Button("Draw_Surface", "RCDA.bmp", "RCDATA_16_SELADD")]^C^C-vbarun DrawSurface_1.dvb!Module1.DrawSurface
ID_UserButton_1 [_Button("ExportACADtoCREDO", "RCDA1352.bmp", "RCDATA_16_BLANK")]^C^C-vbarun ExportACADtoCREDO.dvb!Module1.ExportACADtoCREDO
ID_UserButton_2 [_Button("Strelka9", "RCDA5184.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Strelka9.dvb!Module1.PlineCalc
ID_UserButton_3 [_Button("Axe_and_Points", "ICON.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Axe&Points_1.dvb!Module1.AxeAndPoints
ID_UserButton_4 [_Button("Zasechka2", "ICON5724.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Zasechka2-2.dvb!Module1.Main
ID_UserButton_5 [_Button("Export-SDR", "RCDA5061.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Export-SDR.dvb!Module1.Main
ID_UserButton_6 [_Button("Otkos_3d", "Otkos_2.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Otkos_3d.dvb!Module1.Offset3dPoly
ID_UserButton_7 [_Button("Road1", "RCDA5200.bmp", "RCDATA_16_BLANK")]^C^C-vbarun Road1.dvb!Module1.Main
ID_UserButton_8 [_Button("Unload_VBA", "RCDA5062.bmp", "RCDATA_16_BLANK")]^C^C_vbaman
***IMAGE
**IMAGE_3DOBJECTS
Файлы программ *.dvb и файлы иконок-кнопочек *.bmp надо поместить в папку \Support (можно также в папку Express).
Тогда, открыв АутоКАД надо войти в настройку панелей меню и поставить галочку на панельке GEOD_SNK для ее активизации.
Эту панельку поместить куда удобно. Тогда при каждом запуске АутоКАД'а будет видна панелька этих пользовательских инструментов.
Имя панельки конечно надо назвать по своему вкусу (не "Geod_SNK" а как-нибудь "GeodeticBuilding" или еще круче).
Имя в пути к файлу acad.mns в Windows_XP \Autodesk\Autodesk Land Desktop 2005\ скорее всего окажется \Autodesk\ACAD2005\
Этому тексту 2 или 3 года. Скопировал и вставил.
смотри также: https://www.caduser.ru/forum/topic22747.html
Прошу прощения за "МНОГО БУКВ" - короче будет, если читать учебники.
Сергей Климкин.