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

Вход

Регистрация

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

 

= Мир MS Excel/Контроль параметра вставки - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Контроль параметра вставки
Leprotto Дата: Вторник, 31.01.2017, 11:56 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Добрый день!
Подскажите, пожалуйста, можно макросом контролировать действие пользователя по вставке данных из буфера обмена?
А именно контролировать параметр вставки - если юзер нажал Ctrl+V или вставил любым доступным способом, то вставка должна осуществиться с параметром "только значения".
 
Ответить
СообщениеДобрый день!
Подскажите, пожалуйста, можно макросом контролировать действие пользователя по вставке данных из буфера обмена?
А именно контролировать параметр вставки - если юзер нажал Ctrl+V или вставил любым доступным способом, то вставка должна осуществиться с параметром "только значения".

Автор - Leprotto
Дата добавления - 31.01.2017 в 11:56
Alex_ST Дата: Вторник, 31.01.2017, 12:55 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3219
Репутация: 622 ±
Замечаний: 0% ±

2003
Ну хоткей-то переназначить не трудно.
В модуле ЭтаКнига записываете обработчик события:[vba]
Код
Private Sub Workbook_Open()
   On Error Resume Next
   Application.OnKey "^V", "SPPASTE_VAL"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Application.OnKey "^V"
End Sub
[/vba]а в стандартном модуле (но в принципе можно там же) процедуру:[vba]
Код
Private Sub SPPASTE_VAL() ' "Специальная вставка: ВСТАВИТЬ ТОЛЬКО ТЕКСТ"
' Сочетание клавиш ^V для вызова этой процедуры назначается при событии Workbook_Open
On Error Resume Next
Selection.PasteSpecial Paste:=xlValues
If Err Then Err.Clear: ActiveSheet.PasteSpecial Paste:=xlValues
If Err Then Err.Clear: ActiveSheet.PasteSpecial Format:="Текст", Link:=False, DisplayAsIcon:=False
If Err Then MsgBox "Ошибка " & Err.Number & vbCrLf & Err.Description
End Sub
[/vba]Ну а по поводу
любым доступным способом
это уже посложнее будет, т.к. способов может быть несколько, а само событие "вставка" программно не обрабатывается.



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Вторник, 31.01.2017, 13:00
 
Ответить
СообщениеНу хоткей-то переназначить не трудно.
В модуле ЭтаКнига записываете обработчик события:[vba]
Код
Private Sub Workbook_Open()
   On Error Resume Next
   Application.OnKey "^V", "SPPASTE_VAL"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Application.OnKey "^V"
End Sub
[/vba]а в стандартном модуле (но в принципе можно там же) процедуру:[vba]
Код
Private Sub SPPASTE_VAL() ' "Специальная вставка: ВСТАВИТЬ ТОЛЬКО ТЕКСТ"
' Сочетание клавиш ^V для вызова этой процедуры назначается при событии Workbook_Open
On Error Resume Next
Selection.PasteSpecial Paste:=xlValues
If Err Then Err.Clear: ActiveSheet.PasteSpecial Paste:=xlValues
If Err Then Err.Clear: ActiveSheet.PasteSpecial Format:="Текст", Link:=False, DisplayAsIcon:=False
If Err Then MsgBox "Ошибка " & Err.Number & vbCrLf & Err.Description
End Sub
[/vba]Ну а по поводу
любым доступным способом
это уже посложнее будет, т.к. способов может быть несколько, а само событие "вставка" программно не обрабатывается.

Автор - Alex_ST
Дата добавления - 31.01.2017 в 12:55
Leprotto Дата: Вторник, 31.01.2017, 13:14 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Alex_ST,
Цитата
а само событие "вставка" программно не обрабатывается

очень печально :'( , т.к. Ctrl+V пользуются далеко не все мои юзеры <_<


Сообщение отредактировал Leprotto - Вторник, 31.01.2017, 13:15
 
Ответить
СообщениеAlex_ST,
Цитата
а само событие "вставка" программно не обрабатывается

очень печально :'( , т.к. Ctrl+V пользуются далеко не все мои юзеры <_<

Автор - Leprotto
Дата добавления - 31.01.2017 в 13:14
buchlotnik Дата: Среда, 01.02.2017, 16:19 | Сообщение № 4
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
Нашёл прикольную статью с подробным разбором перехвата (хоткеи + лента)
 
Ответить
СообщениеНашёл прикольную статью с подробным разбором перехвата (хоткеи + лента)

Автор - buchlotnik
Дата добавления - 01.02.2017 в 16:19
Leprotto Дата: Среда, 01.02.2017, 16:20 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
buchlotnik, СПАСИБО БОЛЬШОЕ


Сообщение отредактировал Leprotto - Среда, 01.02.2017, 16:36
 
Ответить
Сообщениеbuchlotnik, СПАСИБО БОЛЬШОЕ

Автор - Leprotto
Дата добавления - 01.02.2017 в 16:20
Alex_ST Дата: Среда, 01.02.2017, 16:35 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3219
Репутация: 622 ±
Замечаний: 0% ±

2003
Ну да, конечно, основные способы вставки перехватываются точно так же:[vba]
Код
Private Sub Workbook_Open()
    On Error Resume Next
    Application.OnKey "^V", "SPPASTE_VAL"
    Application.OnKey "^{Insert}", "SPPASTE_VAL"
    Application.OnKey "+{Insert}", "SPPASTE_VAL"
    Application.OnKey "~", "SPPASTE_VAL"
    Application.OnKey "{Enter}", "SPPASTE_VAL"
End Sub
[/vba]После этого останется, кажется, придумать как перехватить копирование драг-энд-дропом с зажатым Ctrl?



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
СообщениеНу да, конечно, основные способы вставки перехватываются точно так же:[vba]
Код
Private Sub Workbook_Open()
    On Error Resume Next
    Application.OnKey "^V", "SPPASTE_VAL"
    Application.OnKey "^{Insert}", "SPPASTE_VAL"
    Application.OnKey "+{Insert}", "SPPASTE_VAL"
    Application.OnKey "~", "SPPASTE_VAL"
    Application.OnKey "{Enter}", "SPPASTE_VAL"
End Sub
[/vba]После этого останется, кажется, придумать как перехватить копирование драг-энд-дропом с зажатым Ctrl?

Автор - Alex_ST
Дата добавления - 01.02.2017 в 16:35
Leprotto Дата: Среда, 01.02.2017, 16:39 | Сообщение № 7
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 145
Репутация: 2 ±
Замечаний: 0% ±

Excel 2016
Alex_ST, Круто, спасибо!
Цитата
драг-энд-дропом с зажатым Ctrl

в моем случае самый не популярный способ, думаю пока переживу ))
 
Ответить
СообщениеAlex_ST, Круто, спасибо!
Цитата
драг-энд-дропом с зажатым Ctrl

в моем случае самый не популярный способ, думаю пока переживу ))

Автор - Leprotto
Дата добавления - 01.02.2017 в 16:39
  • Страница 1 из 1
  • 1
Поиск:

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