Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
Excel

Аналоговые часы +

05.04.2019, 15:12. Показов 4120. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Некоторое время назад искал в интернете реализацию таймера для vba
Есть метод отложенного запуска OnTime Который подмораживает программу, и не дает возможности делать
обновление быстрее секунды, так-же находил методы с системными winApi (SetTimer - Killtimer), в которых есть
свои плюсы, но тоже не устраивает из за громоздкости написания кодов.

Поэтому пришел к проверенному мною уже не раз, к наиболее удобному способу.
тоесть серез do .. loop и doEvents
В процессе моих поисков я задавал поисковым системам различные запросы, и с удивлением обнаружил что
таких разработок как например аналоговые часы в Excel и такого рода реализаций в интернете вообще нет.
а если даже и есть, то они находятся гдето на уровне начальной разработки
Существует не малый спрос в этом.

Но не будем о грустном. Выкладываю что у меня есть, возможно в этой теме появятся новые идеи.

У меня аналоговые часы на основе функции Rotation и игральные кости
Миниатюры
Аналоговые часы +  
Вложения
Тип файла: rar Аналоговые часы+.rar (30.3 Кб, 58 просмотров)
3
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.04.2019, 15:12
Ответы с готовыми решениями:

VBA Excel аналоговые часы
Хочу сделать аналоговые часы в Ексель на VBA. Обычно разрабатываю программы на языке C#, в этот раз надо сделать в VBA. Есть ли в...

Аналоговые часы
Опишу свою траблу:Создаю аналоговые часы в С++ Builder.Вроде бы сам алгоритм понятен, как работать с таймером понятно,но незнаю законов с...

аналоговые часы на C#
задание по сути таково что надо сделать часы со стрелками: часовой, минутной и секундной. а время стояло системное. там наверное надо...

7
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
05.04.2019, 21:24  [ТС]
Для тех кто уже смотрит, обратите внимание что нет никаких заморозок процесса (и нагрузки на общий процесс), после запуска можно спокойно продолжать редактировать править и тд. (не проверял на всех версиях) задействован только один лист, в нем идет необходимая обработка, там не больше -не меньше более сотни действий производится

Добавлено через 5 часов 18 минут
Некоторые улучшения:
- Улучшены вычисления координат
- Добавлена возможность менять цвет стрелок
Миниатюры
Аналоговые часы +  
Вложения
Тип файла: rar Аналоговые часы+.rar (31.4 Кб, 59 просмотров)
1
06.04.2019, 00:19  [ТС]

Не по теме:

---

0
 Аватар для excelvisual
3 / 2 / 1
Регистрация: 14.05.2019
Сообщений: 5
14.05.2019, 12:00
Лучший ответ Сообщение было отмечено fever brain как решение

Решение

Готовое решение с подробным описанием:
https://exceltable.com/shablon... -diagrammy
Миниатюры
Аналоговые часы +  
2
3 / 3 / 0
Регистрация: 27.11.2015
Сообщений: 11
27.05.2019, 14:55
fever brain, доброго времени.
Пробую на юзер-форме сделать обычные часы (часы:минуты:секунды), но столкнулся с такими проблемами:
- метод Application.OnTime приводит к мерцанию курсора и решений этой проблемы по-видимому нет.
- функция DoEvents с использованием цикла приводит к нагрузке на процессор (~20%).
Подскажите, возможно Вы знаете способ как решить такую задачу или обойти вышеописанные неприятности.
0
oh my god
 Аватар для fever brain
1456 / 796 / 161
Регистрация: 05.01.2016
Сообщений: 2,307
Записей в блоге: 8
28.05.2019, 21:38  [ТС]
Цитата Сообщение от oplrox Посмотреть сообщение
функция DoEvents с использованием цикла приводит к нагрузке на процессор
У меня в цикле do...loop есть еще функция win-api sleep
DoEvents - опрашивает возникшие события в программе
Visual Basic
1
2
3
4
5
6
7
8
9
10
Sub StartTamer()
    Shapes(Application.Caller).Visible = 1
    Call CreateLine
    isRun = True
    Do While isRun
        DoEvents
        Sleep 50
        Call TmrTick
    Loop
End Sub
Объявляется примерно так:
Visual Basic
1
2
3
4
5
6
7
8
9
#If VBA7 Then
    #If Win64 Then
        Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
    #Else
        Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
    #End If
#Else
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If
Частота задержки sleep ~50 герц
Никаких мерцаний не видно, можно работать, правда есть некоторые ограничения с перетаскиванием и тп
На форме куда проще реализовать чем на рабочем листе.
Наиболее подходящим решением в этом случае с диаграммами как у excelvisual

Кстати у него тоже используется бесконечный цикл, с оператором DoEvents - только цикл реализован с помощью GoTo
1
3 / 3 / 0
Регистрация: 27.11.2015
Сообщений: 11
29.05.2019, 03:42
Спасибо за ответ, буду пробовать.
0
Модератор
10048 / 3894 / 883
Регистрация: 22.02.2013
Сообщений: 5,847
Записей в блоге: 79
29.05.2019, 10:23
Цитата Сообщение от fever brain Посмотреть сообщение
У меня в цикле do...loop есть еще функция win-api sleep
DoEvents - опрашивает возникшие события в программе
Лучше прогнать цикл обработки сообщений (GetMessage/TranslateMessage/DispatchMessage), и никаких подвисаний не будет.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.05.2019, 10:23
Помогаю со студенческими работами здесь

Аналоговые часы на C++
Выкладываю свою курсовую по теме "Аналоговые часы" с использованием графической библиотеки graphics.h (BGI) Язык: C++ Среда...

Аналоговые часы
читаю вот эти статьи, хочу попробовать написать аналоговые часы, не знаю как описать с помощью XAML точки в которых будут вставать стрелки...

С++ аналоговые часы
Помогите пожалуйста !! нарисовала часы, но они не идут, может кто знает?!! Спасибо :) #include <windows.h> char str="...

Аналоговые часы
Что было сделано: -нарисованы все стрелки, сам круг. -Все стрелки двигаются. Что хочу спросить: -можно ли как-то нанести на...

Аналоговые часы
Сделал часы, секундная и минутная стрелки отображают корректное время, а вот с часовой беда. Вроде все верно, а работает криво. Помогите...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru