| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA Как правильно открыть форму при запуске скрипта?

VBA Как правильно открыть форму при запуске скрипта?

Ответ
Поиск в этой теме
Непрочитано 07.08.2008, 10:20
VBA Как правильно открыть форму при запуске скрипта?
DonVik
 
Украина
Регистрация: 07.02.2007
Сообщений: 222

В общем задача такая:
Я кликаю по мной созданной кнопке на ToolBarе автокада и должен выполниться скрипт, который просит выбрать блок на листе, после чего должна появиться форма в которой я некоторые атрибуты редактю и заменяю.
Вот скрипт:
Код:
[Выделить все]
Option Explicit
Dim o As Object
Dim varAttributes, p As Variant
Dim br As AcadBlockReference

Private Sub CommandButton1_Click()
 varAttributes(LBound(varAttributes)).TextString = UserForm1.EdRazrab.Text
 If UserForm1.EdObozn.Text <> "" Then
  varAttributes(LBound(varAttributes) + 5).TextString = UserForm1.EdObozn.Text
 End If
 If UserForm1.EdObozn.Text <> "" Then
  varAttributes(LBound(varAttributes) + 12).TextString = UserForm1.EdObozn.Text
 End If
End Sub

Private Sub UserForm_Activate()
 Dim u As String
 Dim fs, a As Variant
 Set fs = CreateObject("Scripting.FileSystemObject")
 Set a = fs.OpenTextFile("d:\EditStampIni.txt", 1)
 EdRazrab.Text = a.ReadLine
 a.Close
End Sub

Private Sub UserForm_Initialize()
 ActiveDocument.Utility.GetEntity br, p, "Âûáåðè øòàìï"
 UserForm1.Show
End Sub
Это обработчики формы
А вот сама главная процедура макроса:
Код:
[Выделить все]
Sub EditStamp()
 UserForm1.hide
End Sub
В тулбаре на кнопке прописано такое:
Код:
[Выделить все]
vbarun _EditStamp
Это название макроса.

Так вот вопросы: Как бы вы решили эту задачу? Как правильно запускать макрос с формой?
Он запускается, но есть два но:
1. Перед запуском вылезает окошко с вопросом какой макрос нужно запустить, это пугает пользователей. Как прописать запуск именно этого макроса
2. Ругается при закрытии формы на
Код:
[Выделить все]
Sub EditStamp()
 UserForm1.hide
End Sub
мол object variable not set
Как от этого избавиться?
Просмотров: 17120
 
Автор темы   Непрочитано 07.08.2008, 13:36
#21
DonVik


 
Регистрация: 07.02.2007
Украина
Сообщений: 222


Цитата:
Александр Бауск
Лана, че уж там... Мне действительно удобнее написать центровые процедуры на Делфи в ДЛЛ, а потом в ВБА просто вызывать их...

Короче трабла из всего осталась только с багом при закрытии формы...
Будут еще напутствия по этому?
DonVik вне форума  
 
Непрочитано 07.08.2008, 13:37
#22
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Цитата:
Сообщение от DonVik Посмотреть сообщение
fixo

неа... ТА же ошибка.
Вставляешь модуль напр. Module1
Вставляешь код
Код:
[Выделить все]
Option Explicit

Sub runMe()
Dim frm As UserForm1
Set frm = New UserForm1
frm.Show
End Sub
UserForm1 - название твоей формы
У меня работает во всех моих проектах

~'J'~
fixo вне форума  
 
Автор темы   Непрочитано 07.08.2008, 14:32
#23
DonVik


 
Регистрация: 07.02.2007
Украина
Сообщений: 222


Цитата:
Вставляешь модуль напр. Module1
Вставляешь код
Так?:

Код:
[Выделить все]
Option Explicit

Sub EditStamp()
 Dim frm As UserForm1
 Set frm = New UserForm1
 frm.Show
End Sub
по прежнему Ругается на то что UserForm1 not set (короче та же ошибка)
DonVik вне форума  
 
Непрочитано 07.08.2008, 15:36
#24
fixo

Lisp/VBA/VB.NET Hobbyist
 
Регистрация: 24.03.2005
Славен Град Петров
Сообщений: 367


Тогда делай проще
Код:
[Выделить все]
Option Explicit

Sub EditStamp()
UserForm.Show
End Sub
fixo вне форума  
 
Автор темы   Непрочитано 08.08.2008, 09:01
#25
DonVik


 
Регистрация: 07.02.2007
Украина
Сообщений: 222


Цитата:
Тогда делай проще
Млин. Та же чепуха.

Лана сделаю так: пихну все в ДЛЛ и форму в том числе...
DonVik вне форума  
 
Непрочитано 01.02.2010, 20:29
#26
Mozgunov

Начинающий проектировщик
 
Регистрация: 07.02.2008
Санкт-Петербург
Сообщений: 443
<phrase 1=


А не подскажите вот по какому вопросу:
К менюшке привязан макрос
Код:
[Выделить все]
^C^C;vbarun;"C:/KonstruktorDetaley/shpilka.dvb!ThisDrawing.shpilka"
Первый раз макрос вызывается и запускается без проблем. После того как он выполнил все нужные действия форма Unload UserForm1 . не вводя после этого никаких команд нажимаю пробел, для запуска макроса ещё раз. Но он требует вновь ввести имя. Как с этим бороться? Слепить как-то vbarun и путь до макроса. Спасибо!
Mozgunov вне форума  
 
Непрочитано 02.02.2010, 10:13
#27
Mikha

Highway Design
 
Регистрация: 16.09.2007
Tver
Сообщений: 27


>>Mozgunov
Повесь на кнопку следующий макрос:
Код:
[Выделить все]
^C^C(defun c:runvba () (vl-vbarun "C:/KonstruktorDetaley/shpilka.dvb!ThisDrawing.shpilka"));runvba;
1.Вместо runvba команду можешь назвать как угодно
2.Команду можно будет запустить из командной строки
3.Команда будет повторно выполняться при нажатии Enter, пробел и т.п.
Mikha вне форума  
 
Непрочитано 03.02.2010, 08:14
#28
Mozgunov

Начинающий проектировщик
 
Регистрация: 07.02.2008
Санкт-Петербург
Сообщений: 443
<phrase 1=


Mikha, Сапсибо! Счас на кнопку повешу команду. А то я через подгрузку lsp файла делал с набором команд
Код:
[Выделить все]
defun c:команда
. А на кнопке уже писал просто
Код:
[Выделить все]
^C^Cкоманда
P.S. Ребят есть три точки A,B,C. Как на VBA подсчитать угол ABC?

Последний раз редактировалось Mozgunov, 03.02.2010 в 18:26.
Mozgunov вне форума  
 
Непрочитано 05.02.2010, 17:54
#29
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,537


А че в панели свойств атрибуты нельзя поменять?
gomer вне форума  
 
Непрочитано 06.02.2010, 14:14
#30
Mozgunov

Начинающий проектировщик
 
Регистрация: 07.02.2008
Санкт-Петербург
Сообщений: 443
<phrase 1=


gomer, А че поподробнее можно написать что за панель свойств и как менять атрибуты программно на VBA?
Mozgunov вне форума  
 
Непрочитано 06.02.2010, 16:13
#31
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,537


1. Панель свойств вызывается: Ctrl+1;
2 По сути темы: Окно должно вызываться модально (с аргументом, кажется, vbModal для перестраховки);
Цитата:
Лана сделаю так: пихну все в ДЛЛ и форму в том числе...
3. Я про эти "ИЗВРАЩЕНИЯ" с Delphi уже высказывался...
gomer вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > VBA Как правильно открыть форму при запуске скрипта?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мониторы LCD CRT Разное 94 17.06.2008 10:51
БРЕД СИВОЙ КОБЫЛЫ Kryaker Разное 1876 29.12.2006 23:41
Как скрыть tesselation lines при печати 3d solids в hidden? tdv AutoCAD 3 04.10.2004 15:42
Свернуть окно при запуске /вопрос по ВинДос/ Perezz!! Программирование 9 25.05.2004 20:16