Все выпуски  

RFpro.ru: Программирование на Basic / VBA


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

Megaloman
Статус: Мастер-Эксперт
Рейтинг: 208
∙ повысить рейтинг »
Sergey V. Gornostaev
Статус: Профессионал
Рейтинг: 1
∙ повысить рейтинг »
Асмик Гаряка
Статус: Советник
Рейтинг: 0
∙ повысить рейтинг »

∙ Basic

Номер выпуска:1153
Дата выхода:18.04.2021, 23:15
Администратор рассылки:Андреенков Владимир (Академик)
Подписчиков / экспертов:1 / 14
Вопросов / ответов:3 / 4

Консультация # 59084: Уважаемые эксперты. У меня возникла такая проблема. Короче есть программа, где в ПикчерБоксе нужно чтобы по клику мышки в любом месте этого бокса появлялся чёрный кружок. Только дело в том, что этих кружков должно быть определённое количество и не больше. Я это решил таким способом: Private Sub Pict_MouseDown(Button As Integer, Shift As ...
Консультация # 90105: Приветствую вас, уважаемые эксперты. Не могу решить одну проблему: программа Excel. Необходимо, что бы либо сама ячейка, либо цвет шрифта в ячейке менялся на заданный при наступлении определенной даты. Как это сделать? Заранее спасибо....
Консультация # 69377: С Новым Годом ув. експерты!! Вопрос вроде несложный, но по книгам я так ничего и не понял. ВОПРОС: есть приложение Excel, в котором записаны макросы с пользовательскими формами. Так вот, при нажатии одной из кнопочок, мне нужно чтобы запустилось уже созданное приложение Word (допустим D:MacrosForma_Doc.doc). Функция GetObject кажись не...

Консультация # 59084:

Уважаемые эксперты. У меня возникла такая проблема. Короче есть программа, где в ПикчерБоксе нужно чтобы по клику мышки в любом месте этого бокса появлялся чёрный кружок. Только дело в том, что этих кружков должно быть определённое количество и не больше. Я это решил таким способом:

Private Sub Pict_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

pp = pp + 1 \\' рр - это глобально объявленная переменная
\\'IshDan.ChisloOtv - \\'это забитое в структуру заданное число кружков
If pp = IshDan.ChisloOtv Then Command2.Visible = True
If pp > IshDan.ChisloOtv Then Exit Sub

mm = mm + 1 \\' тоже глобальная переменная
ReDim Preserve mx(IshDan.ChisloOtv)\\' переобъявление глобальн.массива
ReDim Preserve vy(IshDan.ChisloOtv)
mx(mm) = X \\'полученные координаты на каждый клик забиваются в массив и в дальнейшем используются
vy(mm) = Y
Pict.DrawWidth = 8 \\'толщина линии
Pict.Drawstyle="0" \\'сплошная
Pict.Circle (X, Y), 3, RGB(0, 0, 0)
End Sub
Проблема в том что по первому разу это всё нормально работает, но если не закрывая программу это запустить ещё раз, то не работает. Пробовал:
If pp > IshDan.ChisloOtv Then pp = 0:mm = 0: Exit Sub
Тогда эта строчка на выход из события срабатывает только на один клик мышки, а со второго снова ставятся кружки. Пробовал вместо глобальных pp и mm ставить структурные: IshDan.pp и IshDan.mm
тогда не записывается
mx(mm) = X
vy(mm) = Y
Наверное не знаю какой-то мелочи, но вся прога срабатывает только на один раз, потом приходится её перезапускать, а это не очень удобно...

Дата отправки: 16.10.2006, 11:24
Вопрос задал: Lesnoi
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Patriotix-N:

Здравствуйте, Lesnoi!
Обнулять следует в той процедуре, из которой вызывается повторный цикл кликов.
Т.е. когда вы "не закрывая программу это запускаете ещё раз", то перед запуском вам следует обнулить перменные.

Консультировал: Patriotix-N
Дата отправки: 16.10.2006, 12:27
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 90105:

Приветствую вас, уважаемые эксперты. Не могу решить одну проблему:
программа Excel. Необходимо, что бы либо сама ячейка, либо цвет шрифта в ячейке менялся на заданный при наступлении определенной даты. Как это сделать? Заранее спасибо.

Дата отправки: 05.06.2007, 12:42
Вопрос задал: Zherdev Vitaliy Petrovich
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Ualife:

Здравствуйте, Zherdev Vitaliy Petrovich!
Извините пожалуйста за прошлый ответ, все напутал. Я сам в VBA начинающий. Такая штука как запись макросов очень помагает. Вот код, смотрите в приложении. Всего доброго.

Приложение:

Консультировал: Ualife
Дата отправки: 05.06.2007, 19:00
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Alec Perle:

Здравствуйте, Zherdev Vitaliy Petrovich!
Для этого можно обойтись и без программирования.
В нужной ячейки примените условное форматирование (меню [Формат]-[Условное форматирование], а в качестве условия примените формулу =СЕГОДНЯ()=ДАТА(год;месяц;день), где год, месяц, день - соответственно числа. (например =СЕГОДНЯ()=ДАТА(2007;6;5))
И не забудьте настроить необходимый формат ячейки (отображение ячейки при выполнении условия)

Консультировал: Alec Perle
Дата отправки: 05.06.2007, 20:05
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 69377:

С Новым Годом ув. експерты!!
Вопрос вроде несложный, но по книгам я так ничего и не понял.
ВОПРОС: есть приложение Excel, в котором записаны макросы с пользовательскими формами. Так вот, при нажатии одной из кнопочок, мне нужно чтобы запустилось уже созданное приложение Word (допустим D:MacrosForma_Doc.doc).
Функция GetObject кажись не проходит. Подскажите плиз код процедурки...
Заранеее благодарен!!

Дата отправки: 03.01.2007, 11:23
Вопрос задал: Edhart
Всего ответов: 1
Страница онлайн-консультации »


Консультирует HookEst:

Здравствуйте, Edhart!
Вообще то, GetObject и нужен для того, чтобы получить уже существующий ActiveX объект из файла(если файл указан)
Посмотрите, в приложении функция GetDoc пытается получить объект из файла path, если такого файла не существует, то создается новый документ, и сохраняется в path, если и это не возможно, то выводится сообщение об ошибке и возвращается Nothing.
В Sub CommandButton1_Click() документ "D:\Macros\Forma_Doc.doc" открывается(если еще не открыт) и становится активным.
Успехов.

Приложение:

Консультировал: HookEst
Дата отправки: 03.01.2007, 13:14
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное