2010-12-03 24 views
1

Dans microsoft excel vba, j'essaie d'assigner des hyperliens et/ou des actions aux formes que j'ai dessinées. Voici à peu près ce que j'ai essayé (décommenter seulement une ligne à la fois)Comment affecter un lien hypertexte et un événement onaction à un objet formes dans Excel

Fondamentalement, ce que je veux faire est de permettre aux utilisateurs d'obtenir plus d'informations en cliquant sur un objet de forme. Les liens hypertexte sont bien, mais un type de gestionnaire d'événements qui accepte les paramètres serait idéal. Je vais créer des centaines de ces formes, et ils ont besoin d'un lien vers des endroits uniques dans le document.

Dim destinationHyperlinkCell as Range 
    set destinationHyperlinkCell = Range("10:10") 
    ' (do some stuff here)... 
    With Sheet1.Shapes.AddTextbox(msoTextOrientationHorizontal, _ 
         600, _ 
         600, _ 
         300, _ 
         16) 
    .TextFrame.Characters.Text = "Test this thing" 
    .Name = destinationHyperlinkCell.Address & " group of shapes" 
    '.Hyperlink.Address = destinationHyperlinkCell.Address 
    '.Hyperlink.Range = destinationHyperlinkCell.Address 
    '.OnAction = "'showDebugMsg """ & .Name & """'" 
    End With 

Répondre

1

utilisation « Affecter une macro ... » pour définir une macro à chaque forme qui se déclenche sur « Cliquez »

Vous pouvez utiliser la même macro pour chaque forme et utiliser la propriété Application.Caller pour obtenir le nom de la forme qui a déclenché la macro. Ensuite, vous avez tous les ingrédients pour écrire un gestionnaire intelligent - comme une table Excel (cachée) qui résout le nom de forme dans une URL, texte ou tout

Sub Shape_Click() 
    MsgBox "Co-Cooo! from" & Application.Caller 
End Sub 

espoir qui aide

Bonne chance - MikeD

+0

Merci! Avec le Application.Caller j'ai la flexibilité dont j'ai besoin. Maintenant, le code ci-dessus est ".OnAction = Shape_Click()" ... –