|
|
|
програмное добавление элемента управления в форму
|
|||
|---|---|---|---|
|
#18+
Подскажите пожалуста что не так? на строке set выдает ошибку Run-time error 91 Object variable or With block variable not set Private Sub Workbook_Open() On Error Resume Next 'определение есть объект или нет pr = MyKurs.Controls.Count If pr < 1 Then 'регистрация календаря Program = "regsvr32 /s mscal.ocx" Taskedit = Shell(Program, 1) If Err <> 0 Then MsgBox "Не возможно зарегистрировать календарь.", vbCritical Exit Sub End If On Error GoTo 0 'добавление календаря Dim MyCal As MSACAL.Calendar Set MyCal = ThisWorkbook.VBProject.VBComponents("MyKurs").Designer.Controls.Add("MSACAL.Calendar") End If End Sub ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 15:35 |
|
||
|
програмное добавление элемента управления в форму
|
|||
|---|---|---|---|
|
#18+
все не так. Начать надо с того, что регестрировать и перерегестрировать OCX при каждом запуске книги это чрезвычайно извращенно. ОСХ должен регестрироваться инсталлятором, один раз. Во вторых, ключевое слово DIM не должно быть в центре процедуры. Оно всегда должно идти в начале. В третьих, динамически строить диалоги конечно можно, но все же не нужно. Это гарантирует странные глюки если не сейчас, то потом. Ну и в четвертых, VBComponents("MyKurs") это не ссылка на твой объект типа Forms. Чтобы добраться до форм надо писать что-то вроде: VBComponents("MyKurs").Collection("MyUserForm").Designer..... и так далее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 18:24 |
|
||
|
програмное добавление элемента управления в форму
|
|||
|---|---|---|---|
|
#18+
White Owlвсе не так. Начать надо с того, что регестрировать и перерегестрировать OCX при каждом запуске книги это чрезвычайно извращенно. ОСХ должен регестрироваться инсталлятором, один раз. Во вторых, ключевое слово DIM не должно быть в центре процедуры. Оно всегда должно идти в начале. В третьих, динамически строить диалоги конечно можно, но все же не нужно. Это гарантирует странные глюки если не сейчас, то потом. Ну и в четвертых, VBComponents("MyKurs") это не ссылка на твой объект типа Forms. Чтобы добраться до форм надо писать что-то вроде: VBComponents("MyKurs").Collection("MyUserForm").Designer..... и так далее. с инстолятором не знаком поэтому и стоит проверка следовательно регистрируется он один раз на счет Dim согласен принимаю раслабился динамически строить диалоги - это что? Я у себя диалогов не нашел. а вот что-то вроде спасибо очень помогло, жаль что только не работает, сам бы сначала проверил а потом советовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2005, 19:36 |
|
||
|
програмное добавление элемента управления в форму
|
|||
|---|---|---|---|
|
#18+
Знатоки подскажите пожалуста первый set работает а на второй дает ошибку "Rin-time 429 ActiveX component can't create object Dim MyCal As Calendar Dim d As CommandButton Set d = ThisWorkbook.VBProject.VBComponents("UserForm1").Designer.Controls.Add("forms.CommandButton.1") Set MyCal = ThisWorkbook.VBProject.VBComponents("UserForm1").Designer.Controls.Add("cal.Calendar") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2005, 10:54 |
|
||
|
програмное добавление элемента управления в форму
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2005, 10:22 |
|
||
|
програмное добавление элемента управления в форму
|
|||
|---|---|---|---|
|
#18+
Пользователь2 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. спасибо огромное два дня бился однако заметил странную штуку из стандартного модуля всё в порядке а из "Эта Книга" не работает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2005, 12:19 |
|
||
|
програмное добавление элемента управления в форму
|
|||
|---|---|---|---|
|
#18+
Проверил на Workbook_Open(), все работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2005, 12:30 |
|
||
|
програмное добавление элемента управления в форму
|
|||
|---|---|---|---|
|
#18+
если на компе не зарегистрирован mscal.ocx то при открытии книги ругается на Dim cal As MSACAL.Calendar возможно ли как-то это обойти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2005, 13:33 |
|
||
|
програмное добавление элемента управления в форму
|
|||
|---|---|---|---|
|
#18+
А что мешает его зарегистрировать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2005, 14:41 |
|
||
|
програмное добавление элемента управления в форму
|
|||
|---|---|---|---|
|
#18+
Пользователь2А что мешает его зарегистрировать? так и хотелось что бы само регистрировалось и добавляла контролы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2005, 15:46 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=33257293&tid=2178719]: |
0ms |
get settings: |
4ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
165ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 473ms |

| 0 / 0 |
