Суприйо спросил, есть ли в VBA обработчик событий мыши. Он хочет, чтобы значение вставлялось в ячейку при нажатии на эту ячейку.

Стандартный способ сделать это — использовать событие SelectionChange. Каждый раз, когда выбор изменяется на листе, запускается событие. Событие срабатывает не только при нажатии на ячейку, но и при нажатии клавиши управления курсором, в результате чего выбирается другая ячейка.

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

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Not Intersect(Target, Range("B5")) Is Nothing Then _       Range("B5").Value = 10 End Sub

Этот код добавляется к одному из объектов листа в области Project Explorer редактора VB. Дважды щелкните лист, к которому нужно применить обработчик событий, а затем добавьте макрос в появившееся окно кода.

Когда запускается событие SelectionChange, цель (выбранный диапазон ячеек) передается обработчику. Затем макрос проверяет, содержит ли целевой диапазон ячейку B5, и, если да, вставляет значение 10 в ячейку B5. Если вы хотите убедиться, что макрос вставляет информацию в B5, только если выбран только B5 (единственная ячейка), вы можете использовать эту версию макроса:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Address = Range("B5").Address Then _       Range("B5").Value = 10 End Sub

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (3070) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:

link: / excelribbon-Mouse_Click_Event_in_VBA [Событие щелчка мыши в VBA].