Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Имитация двойного клика (VBA) - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Имитация двойного клика (VBA)
oggis Дата: Пятница, 05.07.2013, 17:01 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Надо чтобы в определенной книге (Excel) в определенном диапазоне ячеек происходила имитация двойного клика.

Помогите реализовать такую задачу.
Спасибо.
 
Ответить
СообщениеНадо чтобы в определенной книге (Excel) в определенном диапазоне ячеек происходила имитация двойного клика.

Помогите реализовать такую задачу.
Спасибо.

Автор - oggis
Дата добавления - 05.07.2013 в 17:01
Serge_007 Дата: Пятница, 05.07.2013, 17:04 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (oggis)
имитация двойного клика
Двойной клик ЛКМ в Excel вызывает режим редактирования ячейки. А Вам что надо?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (oggis)
имитация двойного клика
Двойной клик ЛКМ в Excel вызывает режим редактирования ячейки. А Вам что надо?

Автор - Serge_007
Дата добавления - 05.07.2013 в 17:04
oggis Дата: Пятница, 05.07.2013, 17:09 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Цитата (Serge_007)
А Вам что надо?


Чтоб Excel переходил в режим редактирования ячейки, но не редактировал её.
Я пытался использовать Application.DoubleClick, но никакой реакции не происходит.
 
Ответить
Сообщение
Цитата (Serge_007)
А Вам что надо?


Чтоб Excel переходил в режим редактирования ячейки, но не редактировал её.
Я пытался использовать Application.DoubleClick, но никакой реакции не происходит.

Автор - oggis
Дата добавления - 05.07.2013 в 17:09
Serge_007 Дата: Пятница, 05.07.2013, 17:13 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (oggis)
Чтоб Excel переходил в режим редактирования ячейки, но не редактировал её.
А какой в этом смысл?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (oggis)
Чтоб Excel переходил в режим редактирования ячейки, но не редактировал её.
А какой в этом смысл?

Автор - Serge_007
Дата добавления - 05.07.2013 в 17:13
SkyPro Дата: Пятница, 05.07.2013, 17:31 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
*Проверка телепатии*

После смены формата ячеек нужно каждую "переклацать"?
Попробуйте скопировать пустую ячейку, выделить требуемый диапазон и через спец. вставку выбрать "сложить".


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Пятница, 05.07.2013, 17:32
 
Ответить
Сообщение*Проверка телепатии*

После смены формата ячеек нужно каждую "переклацать"?
Попробуйте скопировать пустую ячейку, выделить требуемый диапазон и через спец. вставку выбрать "сложить".

Автор - SkyPro
Дата добавления - 05.07.2013 в 17:31
Саня Дата: Пятница, 05.07.2013, 21:43 | Сообщение № 6
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
Цитата (oggis)
Чтоб Excel переходил в режим редактирования ячейки, но не редактировал её.

Что это?!
При двойном клике (либо F2) происходит переход в режим редактирования, но Excel ничего сам не редактирует

Ладно, шутки в сторону.
Эмуляция тыканья мышью:
[vba]
Код
Private Declare Sub mouse_event Lib "user32" ( _
                     ByVal dwFlags As Long, _
                     ByVal dx As Long, _
                     ByVal dy As Long, _
                     ByVal cButtons As Long, _
                     ByVal dwExtraInfo As Long)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10

Sub ld()
      mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
End Sub
Sub lu()
      mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
End Sub

Sub LeftClick()
      ld
      lu
End Sub

Sub DblClick()
      LeftClick
      LeftClick
End Sub
[/vba]

эмуляция проходит, но в excel'е что-то мешает входу в ячейку, хз что...
эмулируем F2:
[vba]
Код
Option Explicit
Private Declare Sub keybd_event Lib "user32.dll" ( _
                     ByVal bVk As Byte, _
                     ByVal bScan As Byte, _
                     ByVal dwFlags As Long, _
                     ByVal dwExtraInfo As Long)
Const KEYEVENTF_KEYUP = &H2
Const VK_F2 = 113

Sub Click_F2()
      keybd_event VK_F2, 0, 0, 0
      keybd_event VK_F2, 0, KEYEVENTF_KEYUP, 0
End Sub
[/vba]
здесь все норм - попадаем в режим редактирования.
 
Ответить
Сообщение
Цитата (oggis)
Чтоб Excel переходил в режим редактирования ячейки, но не редактировал её.

Что это?!
При двойном клике (либо F2) происходит переход в режим редактирования, но Excel ничего сам не редактирует

Ладно, шутки в сторону.
Эмуляция тыканья мышью:
[vba]
Код
Private Declare Sub mouse_event Lib "user32" ( _
                     ByVal dwFlags As Long, _
                     ByVal dx As Long, _
                     ByVal dy As Long, _
                     ByVal cButtons As Long, _
                     ByVal dwExtraInfo As Long)
Const MOUSEEVENTF_LEFTDOWN = &H2
Const MOUSEEVENTF_LEFTUP = &H4
Const MOUSEEVENTF_MIDDLEDOWN = &H20
Const MOUSEEVENTF_MIDDLEUP = &H40
Const MOUSEEVENTF_MOVE = &H1
Const MOUSEEVENTF_ABSOLUTE = &H8000
Const MOUSEEVENTF_RIGHTDOWN = &H8
Const MOUSEEVENTF_RIGHTUP = &H10

Sub ld()
      mouse_event MOUSEEVENTF_LEFTDOWN, 0&, 0&, 0&, 0&
End Sub
Sub lu()
      mouse_event MOUSEEVENTF_LEFTUP, 0&, 0&, 0&, 0&
End Sub

Sub LeftClick()
      ld
      lu
End Sub

Sub DblClick()
      LeftClick
      LeftClick
End Sub
[/vba]

эмуляция проходит, но в excel'е что-то мешает входу в ячейку, хз что...
эмулируем F2:
[vba]
Код
Option Explicit
Private Declare Sub keybd_event Lib "user32.dll" ( _
                     ByVal bVk As Byte, _
                     ByVal bScan As Byte, _
                     ByVal dwFlags As Long, _
                     ByVal dwExtraInfo As Long)
Const KEYEVENTF_KEYUP = &H2
Const VK_F2 = 113

Sub Click_F2()
      keybd_event VK_F2, 0, 0, 0
      keybd_event VK_F2, 0, KEYEVENTF_KEYUP, 0
End Sub
[/vba]
здесь все норм - попадаем в режим редактирования.

Автор - Саня
Дата добавления - 05.07.2013 в 21:43
KuklP Дата: Суббота, 06.07.2013, 13:27 | Сообщение № 7
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Друзья, загляните в тему: http://www.planetaexcel.ru/forum....ostform
Это даже не кросс...


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеДрузья, загляните в тему: http://www.planetaexcel.ru/forum....ostform
Это даже не кросс...

Автор - KuklP
Дата добавления - 06.07.2013 в 13:27
The_Prist Дата: Суббота, 06.07.2013, 14:14 | Сообщение № 8
Группа: Друзья
Ранг: Участник
Сообщений: 85
Репутация: 22 ±
Замечаний: 0% ±

2010
Есть у Application метод DoubleClick. По крайней мере в 2010 Excel. И если верить справке, то он должен выполнять как раз эмуляцию двойного клика. Но не выполняет.
Притом все можно сделать без API
[vba]
Код
Sub Emul_F2()
       Application.SendKeys "{F2}"
       Application.SendKeys "{ENTER}"
End Sub
[/vba]
запускаем с листа(через Al+F8)

или можно циклом(показано до 100-ой строки)
[vba]
Код
Sub Emul_F2()
       Dim lCnt As Long
       Do While lCnt < 100
           Application.SendKeys "{F2}"
           Application.SendKeys "{ENTER}"
           lCnt = lCnt + 1
       Loop
End Sub
[/vba]


Errare humanum est, stultum est in errore perseverare

Сообщение отредактировал The_Prist - Суббота, 06.07.2013, 15:10
 
Ответить
СообщениеЕсть у Application метод DoubleClick. По крайней мере в 2010 Excel. И если верить справке, то он должен выполнять как раз эмуляцию двойного клика. Но не выполняет.
Притом все можно сделать без API
[vba]
Код
Sub Emul_F2()
       Application.SendKeys "{F2}"
       Application.SendKeys "{ENTER}"
End Sub
[/vba]
запускаем с листа(через Al+F8)

или можно циклом(показано до 100-ой строки)
[vba]
Код
Sub Emul_F2()
       Dim lCnt As Long
       Do While lCnt < 100
           Application.SendKeys "{F2}"
           Application.SendKeys "{ENTER}"
           lCnt = lCnt + 1
       Loop
End Sub
[/vba]

Автор - The_Prist
Дата добавления - 06.07.2013 в 14:14
Саня Дата: Суббота, 06.07.2013, 17:57 | Сообщение № 9
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
с планеты:
Цитата
Ну...Там я не согласен с высказыванием Сани относительно DoubleClick. Если он чего-то не видит - не значит, что этого нет...
Если он чего-то не видит, вы скажите про это мне здесь, а не ему где-то там.
 
Ответить
Сообщениес планеты:
Цитата
Ну...Там я не согласен с высказыванием Сани относительно DoubleClick. Если он чего-то не видит - не значит, что этого нет...
Если он чего-то не видит, вы скажите про это мне здесь, а не ему где-то там.

Автор - Саня
Дата добавления - 06.07.2013 в 17:57
oggis Дата: Суббота, 06.07.2013, 19:15 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

KuklP, вы правы, я поступил неправильно.
Саня, хотел бы извиниться перед вами и выражаю вам свою благодарность за помощь.
 
Ответить
СообщениеKuklP, вы правы, я поступил неправильно.
Саня, хотел бы извиниться перед вами и выражаю вам свою благодарность за помощь.

Автор - oggis
Дата добавления - 06.07.2013 в 19:15
Саня Дата: Суббота, 06.07.2013, 19:49 | Сообщение № 11
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
oggis, благодарность принимаю, извинения нет - мне не за что вас извинять.
 
Ответить
Сообщениеoggis, благодарность принимаю, извинения нет - мне не за что вас извинять.

Автор - Саня
Дата добавления - 06.07.2013 в 19:49
The_Prist Дата: Суббота, 06.07.2013, 22:12 | Сообщение № 12
Группа: Друзья
Ранг: Участник
Сообщений: 85
Репутация: 22 ±
Замечаний: 0% ±

2010
[offtop]
Цитата (Саня)
вы скажите про это мне здесь, а не ему где-то там.
Не надо меня сейчас делать каким-то негодяем - когда я писал пост на Планете, я здесь все продублировал и Вы это знаете не хуже меня. Но после моего высказывания относительно DoubleClick Вы потерли здесь свое высказывание, которое я процитировал. Моя цитата стала "ниоткуда". Я отредактировал свой пост, удалив цитату, о чем Вас проинформировал в личке. Про сообщение на Планете забыл и его не подредактировал, после чего надо было уехать. Приехал только сейчас и что вижу - я какой-то невежа, который чего-то не там сказал?
Раз считаете, что разбираться по подобным вопросам лучше не в личке, а прямо в теме - я не против, я свои сообщения не редактирую, если где-то накосячу. Я извинюсь и признаю свою ошибку. Но каждый делает как ему больше нравиться и как привык.[/offtop]


Errare humanum est, stultum est in errore perseverare

Сообщение отредактировал The_Prist - Воскресенье, 07.07.2013, 11:08
 
Ответить
Сообщение[offtop]
Цитата (Саня)
вы скажите про это мне здесь, а не ему где-то там.
Не надо меня сейчас делать каким-то негодяем - когда я писал пост на Планете, я здесь все продублировал и Вы это знаете не хуже меня. Но после моего высказывания относительно DoubleClick Вы потерли здесь свое высказывание, которое я процитировал. Моя цитата стала "ниоткуда". Я отредактировал свой пост, удалив цитату, о чем Вас проинформировал в личке. Про сообщение на Планете забыл и его не подредактировал, после чего надо было уехать. Приехал только сейчас и что вижу - я какой-то невежа, который чего-то не там сказал?
Раз считаете, что разбираться по подобным вопросам лучше не в личке, а прямо в теме - я не против, я свои сообщения не редактирую, если где-то накосячу. Я извинюсь и признаю свою ошибку. Но каждый делает как ему больше нравиться и как привык.[/offtop]

Автор - The_Prist
Дата добавления - 06.07.2013 в 22:12
Serge_007 Дата: Воскресенье, 07.07.2013, 02:07 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Саня, The_Prist, во первых - если уж оффтопите, то для оформления есть соответствующие теги, во вторых - в чём сыр-бор? Чего не поделили? Я вижу что Саша Диме даже плюс поставил за решение. Хватит пререкаться. Одно дело делаем, всё, мир-дружба-жвачка smile


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение Саня, The_Prist, во первых - если уж оффтопите, то для оформления есть соответствующие теги, во вторых - в чём сыр-бор? Чего не поделили? Я вижу что Саша Диме даже плюс поставил за решение. Хватит пререкаться. Одно дело делаем, всё, мир-дружба-жвачка smile

Автор - Serge_007
Дата добавления - 07.07.2013 в 02:07
The_Prist Дата: Воскресенье, 07.07.2013, 11:22 | Сообщение № 14
Группа: Друзья
Ранг: Участник
Сообщений: 85
Репутация: 22 ±
Замечаний: 0% ±

2010
Сергей, извиняюсь. Оформил свое сообщение оффтопом.


Errare humanum est, stultum est in errore perseverare

Сообщение отредактировал The_Prist - Воскресенье, 07.07.2013, 11:23
 
Ответить
СообщениеСергей, извиняюсь. Оформил свое сообщение оффтопом.

Автор - The_Prist
Дата добавления - 07.07.2013 в 11:22
KuklP Дата: Воскресенье, 07.07.2013, 11:27 | Сообщение № 15
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Короче, непонятка вышла. Хватит уже smile


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеКороче, непонятка вышла. Хватит уже smile

Автор - KuklP
Дата добавления - 07.07.2013 в 11:27
Serge_007 Дата: Воскресенье, 07.07.2013, 11:32 | Сообщение № 16
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Цитата (KuklP)
Хватит уже
Думаю да smile
Надеюсь разобрались и взаимных претензий больше нет.
[/offtop]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Цитата (KuklP)
Хватит уже
Думаю да smile
Надеюсь разобрались и взаимных претензий больше нет.
[/offtop]

Автор - Serge_007
Дата добавления - 07.07.2013 в 11:32
The_Prist Дата: Воскресенье, 07.07.2013, 11:41 | Сообщение № 17
Группа: Друзья
Ранг: Участник
Сообщений: 85
Репутация: 22 ±
Замечаний: 0% ±

2010
[offtop]Опа...быстро вы...я свое сообщение сразу же затер, оставив только то, что нужно для форума. А пояснения отправил в личку Сергею. А тут уже ответы....
У меня претензий нет и не было, просто некрасиво это[/offtop]


Errare humanum est, stultum est in errore perseverare

Сообщение отредактировал The_Prist - Воскресенье, 07.07.2013, 11:43
 
Ответить
Сообщение[offtop]Опа...быстро вы...я свое сообщение сразу же затер, оставив только то, что нужно для форума. А пояснения отправил в личку Сергею. А тут уже ответы....
У меня претензий нет и не было, просто некрасиво это[/offtop]

Автор - The_Prist
Дата добавления - 07.07.2013 в 11:41
KuklP Дата: Воскресенье, 07.07.2013, 11:45 | Сообщение № 18
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Ребят, тему все равно ИМХО придется чистить от оффтопа. Так что нет смысла в тегах. Дим, так мне сразу уведомления на агент приходят.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеРебят, тему все равно ИМХО придется чистить от оффтопа. Так что нет смысла в тегах. Дим, так мне сразу уведомления на агент приходят.

Автор - KuklP
Дата добавления - 07.07.2013 в 11:45
Serge_007 Дата: Воскресенье, 07.07.2013, 11:51 | Сообщение № 19
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
[offtop]
Цитата (The_Prist)
У меня претензий нет и не было
Всё, так можно бесконечно постить smile
Давайте прекращать.
Вопрос ТС решен - тема закрыта.[/offtop]


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение[offtop]
Цитата (The_Prist)
У меня претензий нет и не было
Всё, так можно бесконечно постить smile
Давайте прекращать.
Вопрос ТС решен - тема закрыта.[/offtop]

Автор - Serge_007
Дата добавления - 07.07.2013 в 11:51
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!