Итак, я изменил положение поля комментария с помощью VBA, но он отображает только эту новую позицию, когда я нажимаю «редактировать/показывать комментарий». Почему он не показывает эту новую позицию, когда я нависаю над ячейкой?Как изменить положение окна комментария при наведении курсора на него?
ответ
По умолчанию вы не можете сделать показ комментариев в заранее определенном месте, когда вы наведите указатель мыши на ячейку. Сказав, что если мы создадим цикл в коде, который постоянно захватывает Mouse Co-Ordinates, тогда да, мы можем достичь того, чего хотим. Тем не менее это не идеальное решение, так как любой цикл замедляет работу вашей книги.
Я публикую это решение, чтобы продемонстрировать, что это возможно.
Этот код использует API GetCursorPos. Вы можете прочитать об API в ссылке, которую я упоминал, который также случается быть мой любимчик сайт для APIs :)
Скажем, Cell C4 имеет комментарий
Теперь Вставьте этот код в модуль.
Option Explicit
Public Declare Function GetCursorPos Lib "user32" _
(lpPoint As POINTAPI) As Long
Public Type POINTAPI
x As Long
y As Long
End Type
Dim lngCurPos As POINTAPI
Public CancelHover As Boolean
Dim C4_Left As Double, C4_Right As Double, C4_Top As Double, C4_Bottom As Double
Public Sub ActivateHover()
CancelHover = False
With ActiveWindow
C4_Left = .PointsToScreenPixelsX(Range("C4").Left)
C4_Right = .PointsToScreenPixelsX(Range("C4").Offset(0, 1).Left)
C4_Top = .PointsToScreenPixelsY(Range("C4").Top)
C4_Bottom = .PointsToScreenPixelsY(Range("C4").Offset(1, 0).Top)
End With
Do
GetCursorPos lngCurPos
If lngCurPos.x > C4_Left And lngCurPos.x < C4_Right Then
If lngCurPos.y > C4_Top And lngCurPos.y < C4_Bottom Then
'~~> Show the comment forcefully
Range("C4").Comment.Visible = True
'~~> Re-position the comment. Can use other properties as .Left etc
Range("C4").Comment.Shape.Top = 100
Else
Range("C4").Comment.Visible = False
End If
End If
DoEvents
Loop Until CancelHover = True
End Sub
Добавьте кнопку на листе и в случае щелчка кнопки добавить код, который будет останавливать выше цикл.
Private Sub CommandButton1_Click()
CancelHover = True
End Sub
Теперь, когда вы наводите указатель мыши на ячейку, комментарий переместится в заданную позицию.
Примечание: Я все еще пытаюсь усовершенствовать код у него еще не очень точны. PointsToScreenPixelsX
не дает мне точных размеров, очевидно, поэтому комментарий иногда показывает, даже когда я наводил на себя B3
. Как я уже сказал, я пытаюсь это исправить.
Это отличный ответ. В Contextures.com есть запись под названием [XL Comments VBA] (http://www.contextures.com/xlcomments03.html), в которой есть отличный код. Это может помочь с вашим ответом. Или, по крайней мере, хорошее чтение. – guitarthrower
@guitarthrower: Да, я знаю эту ссылку :) –
- 1. Как изменить текст при наведении на него?
- 2. изменить положение изображения при наведении курсора эффект CSS3
- 3. Как изменить изображение на другое изображение при наведении на него
- 4. Положение всплывающего изображения при наведении курсора мыши
- 5. Изменение курсора при наведении дочернего окна
- 6. Как изменить цвет кнопки при наведении курсора?
- 7. Всплывающие окна при наведении курсора над DIV
- 8. Показать div только при наведении курсора мыши на него
- 9. Изменить содержание анкерного элемента при наведении курсора
- 10. Изменить цвет фона при наведении курсора мыши
- 11. Изменить текст при наведении курсора мыши
- 12. Изменить цвет фона при наведении курсора?
- 13. Изменить линии/подсказке при наведении курсора мыши
- 14. Изменить другие DIV при наведении курсора мыши
- 15. Как изменить изображение Div1 при наведении курсора на div2?
- 16. Как изменить непрозрачность изображения при наведении курсора на текст?
- 17. Как изменить цвет привязки при наведении курсора на список
- 18. Как изменить весь цвет шрифта при наведении курсора на li
- 19. Как изменить цвет при наведении курсора мыши на SVG base64
- 20. Как изменить изображения при наведении курсора на jQuery?
- 21. Как изменить ребенка родного брата при наведении курсора на div
- 22. Как изменить размер окна на элемент меню при наведении курсора на
- 23. HWND Изменение курсора при наведении курсора мыши
- 24. Как изменить элемент при наведении курсора, не изменяя интервал внутри?
- 25. Я хочу изменить выпадающий при наведении курсора мыши на него или когда его не
- 26. Меню перемещается при наведении курсора на
- 27. Воспроизведение музыки при наведении курсора?
- 28. Изменение стиля курсора при наведении курсора на диаграмму Google
- 29. CSS изменить цвет пролета при наведении курсора на кнопку
- 30. Изменить навигационный текст при наведении курсора, чем изменить исходный текст
AFAIK, я не думаю, что вы не можете изменить позицию по умолчанию комментария при наведении курсора на ячейку, но вы можете использовать макрос для повторной установки их, если включен Show Comment. –
Хорошо может быть способ использования API ... дайте мне проверить его ... –
Да, это то, что я говорил. Я уже это сделал. Похоже, вы должны быть в состоянии, но я не могу найти какие-либо решения, как ... – SCar88