Ho già risposto a questa domanda in un thread di tempo fa.
Comunque ecco il codice:
Dichiarazioni (da fare possibilmente in un modulo):


codice:
    
'Left-click constants.
Public Const WM_LBUTTONDBLCLK = &H203   'Double-click
Public Const WM_LBUTTONDOWN = &H201     'Button down
Public Const WM_LBUTTONUP = &H202       'Button up

'Right-click constants.
Public Const WM_RBUTTONDBLCLK = &H206   'Double-click
Public Const WM_RBUTTONDOWN = &H204     'Button down
Public Const WM_RBUTTONUP = &H205       'Button up


Public Const WM_MOUSEISMOVING = &H200 ' Mouse is moving
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_ICON = &H2
Public Const NIF_TIP = &H4

Public Type NOTIFYICONDATA
    cbSize As Long
    hwnd As Long
    uID As Long
    uFlags As Long
    uCallbackMessage As Long
    hIcon As Long
    szTip As String * 64
End Type

Public Declare Function Shell_NotifyIconA Lib "SHELL32" (ByVal dwMessage As Long, _
lpData As NOTIFYICONDATA) As Integer

X metterla:

codice:
nic.cbSize = Len(nic) ' Lunghezza della struttura NOTIFYICONDATA
            nic.hIcon = Me.Icon '  l’icona del form
            nic.hwnd = Me.hwnd ' l’handle del form
            nic.uCallbackMessage = WM_MOUSEISMOVING '
            nic.uFlags = NIF_MESSAGE + NIF_ICON + NIF_TIP  'Ho impostato tutti i parametri della struttura
            nic.uID = 1 ' L’id della icona...
            nic.szTip = "Ciao" 'TooltipText
            
            Call Shell_NotifyIconA(NIM_ADD, nic)

Per toglierla:

codice:
nic.cbSize = Len(nic)
    nic.hwnd = Form1.hwnd
    nic.uFlags = NIF_ICON
    nic.uID = 1
    Call Shell_NotifyIconA(NIM_DELETE, nic)
Mi pare abbastanza no?

Bye