Как программно добавить кнопку на панель инструментов?

Программирование на Visual Basic for Applications
Fuzzy
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 03.12.2002 (Вт) 12:33

Как программно добавить кнопку на панель инструментов?

Сообщение Fuzzy » 16.04.2003 (Ср) 12:47

При этом хотелось бы, чтобы ещё иконка была моя. Кто-нибудь делал такое?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 16.04.2003 (Ср) 12:56

Про то как добавлять - смотри описание CommandBars



Процесс назначения своей иконки - после создания кнопки кладешь иконку в clipboard, а у кнопки вызываешь метод .PasteFace

Fuzzy
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 03.12.2002 (Вт) 12:33

Сообщение Fuzzy » 16.04.2003 (Ср) 13:52

круто! Спасибо!
Только непонятно, как взять иконку в клипборд

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 16.04.2003 (Ср) 14:00

Можно загрузить ее с диска через Loadpicture, после чего через dataobject пихнуть ее в буфер.

Fuzzy
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 03.12.2002 (Вт) 12:33

Сообщение Fuzzy » 16.04.2003 (Ср) 14:03

а Loadpicture - это что?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 16.04.2003 (Ср) 14:20

Это можно прочитать в хелпнике опять же.

Загружает картинку из файла на диске.

Fuzzy
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 03.12.2002 (Вт) 12:33

Сообщение Fuzzy » 16.04.2003 (Ср) 14:31

не нахожу ведь в своём хелпнике, а то бы не спрашивал :(
пример использования запости, пожалуйста.
Это ваще что - метод (чей?) или оператор?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 16.04.2003 (Ср) 14:34

Читай:



LoadPicture Method



The LoadPicture method loads a graphic into an ActiveX control.



expression.LoadPicture(FileName)



expression Required. An expression that returns one of the objects in the Applies To list.



FileName Required String. The file name of the graphic to be loaded. The graphic can be a bitmap file (.bmp), icon file (.ico), run-length encoded file (.rle), or metafile (.wmf).



Remarks

Assign the return value of the LoadPicture method to the Picture property of an ActiveX control to dynamically load a graphic into the control. The following example loads a bitmap into a control called OLECustomControl on an Orders form:



Set Forms!Orders!OLECustomControl.Picture = _

LoadPicture("Stars.bmp")

The LoadPicture method returns an object of type Picture. You can assign this value to a variable of type Object by using the Set statement.



The Picture object is not a Microsoft Access object, but it is available to procedures in Microsoft Access.



Note You can't use the LoadPicture method to set the Picture property of an image control. This method works with ActiveX controls only. To set the Picture property of an image control, simply assign to it a string specifying the file name and path of the desired graphic.

Fuzzy
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 03.12.2002 (Вт) 12:33

Сообщение Fuzzy » 16.04.2003 (Ср) 14:40

теперь понятно, почему я в хелпнике не нахожу - я про эксел спрашиваю :(
извини, что сразу не сказал.
А в экселе у Application нету такого метода :(
Что делать?!!!

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 16.04.2003 (Ср) 16:24

Да не Application, а просто LoadPicture - это есть и в Word, и в Excel.

Fuzzy
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 03.12.2002 (Вт) 12:33

Сообщение Fuzzy » 16.04.2003 (Ср) 16:50

Скажи, у тебя реально получалось такое сделать в экселе?

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 16.04.2003 (Ср) 17:09

Да.

Fuzzy
Обычный пользователь
Обычный пользователь
 
Сообщения: 60
Зарегистрирован: 03.12.2002 (Вт) 12:33

Сообщение Fuzzy » 16.04.2003 (Ср) 17:12

Всё, шпасибо, получилось! :)
Балшой рахмат.
Получилось следующим образом:
Код: Выделить всё
CommandBars("MyCommandBar").Controls("MyControl").Picture = LoadPicture("MyPicture.bmp")

несмотря на то, что "официально" свойства Picture у Control'а нет, и функцию LoadPicture я тоже в хелпе эксела так и не обнаружил (а в хелпе акеса она имеется).
Вот теперь вопрос, чем саму иконку нарисовать, кроме Paint'а нет больше идей :(

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 16.04.2003 (Ср) 17:20

Ну вот это уже вопрос вкуса :)

Paint, Photoshop кому что больше по душе :)


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 10

    TopList