Home |
Search |
Today's Posts |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
If we are talking control toolbar labels, you can try this
To do this, put the following code in a standard code module (making it available to the whole workbook). '------------- bas module ------------------------ Option Explicit Declare Function GetSystemMetrics Lib "user32" ( _ ByVal nIndex As Long) As Long Declare Function GetSysColor Lib "user32" ( _ ByVal nIndex As Long) As Long Public Function CreateToolTipLabel(objHostOLE As Object, _ sTTLText As String) As Boolean Dim objToolTipLbl As OLEObject Dim objOLE As OLEObject Const SM_CXSCREEN = 0 Const COLOR_INFOTEXT = 23 Const COLOR_INFOBK = 24 Const COLOR_WINDOWFRAME = 6 Application.ScreenUpdating = False 'just while label is created and formatted For Each objOLE In ActiveSheet.OLEObjects If objOLE.Name = "TTL" Then objOLE.Delete 'only one can exist at a time Next objOLE 'create a label control... Set objToolTipLbl = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Label .1") '...and format it to look as a ToolTipWindow With objToolTipLbl .Top = objHostOLE.Top + objHostOLE.Height - 10 .Left = objHostOLE.Left + objHostOLE.Width - 10 .Object.Caption = sTTLText .Object.Font.Size = 8 .Object.BackColor = GetSysColor(COLOR_INFOBK) .Object.BackStyle = 1 .Object.BorderColor = GetSysColor(COLOR_WINDOWFRAME) .Object.BorderStyle = 1 .Object.ForeColor = GetSysColor(COLOR_INFOTEXT) .Object.TextAlign = 1 .Object.AutoSize = False .Width = GetSystemMetrics(SM_CXSCREEN) .Object.AutoSize = True .Width = .Width + 2 .Height = .Height + 2 .Name = "TTL" End With DoEvents Application.ScreenUpdating = True 'delete the tooltip window after 5 secs Application.OnTime Now() + TimeValue("00:00:05"), "DeleteToolTipLabels" End Function Public Sub DeleteToolTipLabels() Dim objToolTipLbl As OLEObject For Each objToolTipLbl In ActiveSheet.OLEObjects If objToolTipLbl.Name = "TTL" Then objToolTipLbl.Delete Next objToolTipLbl End Sub '------------end of bas module ------------- Then in the code module for the sheet that has the control, add some mousedown event code. To get to this module, right-click on the sheet name tab, and select code (or double-click on the sheet name from within the VB IDE). Here is an example of how to call it, assuming that the label is called Label1 Private Sub Label1_MouseMove(ByVal Button As Integer, _ ByVal Shift As Integer, _ ByVal X As Single, _ ByVal Y As Single) Dim objTTL As OLEObject Dim fTTL As Boolean For Each objTTL In ActiveSheet.OLEObjects fTTL = objTTL.Name = "TTL" Next objTTL If Not fTTL Then CreateToolTipLabel Label1, "ToolTip Label" End If End Sub -- HTH RP (remove nothere from the email address if mailing direct) "John Robinson" wrote in message om... Is it possible to display a tool tip-text type label as the mouse hovers over a label on an excel sheet. I can get a msgbox to come up using Mousemove or click, but that requires a user interaction to remove it. I would like a simple tiptext type message to appear as one hovered over it and disappear as one moved on. Labels don't seem to have this property. My problem is a small label, which sometimes holds a long address and I would like to be able to display it all as one hovers over it. Thanks in advance for any help! |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Changing the "tooltip" text in an excel chart | Charts and Charting in Excel | |||
Change the tooltip text for a datapoint | Charts and Charting in Excel | |||
tooltip text | Links and Linking in Excel | |||
How to add Tooltip text to Treeview | Excel Programming | |||
add text to label (label from forms toolbar) | Excel Programming |