2016-12-08 4 views
0

Ich habe einen Pfeil und wenn ich darauf klicke, sollte eine Wolkenform erscheinen. Das funktioniert jetzt gut. Was ich jetzt will, ist, dass, wenn ich denselben Knopf wieder klicke, die Wolke verschwinden sollte. Ich gues ich brauche, um meine Wolke ein Objekt und als für seinen Zustand oder etwas zu machen, aber ich habe nicht herausfinden, wie noch .. das ist mein Code:Öffnen und schließen einer Form mit dem gleichen "Knopf"

Sub Blase()

ActiveSheet.Shapes.AddShape(msoShapeCloudCallout, 795, 8.25, 107.25, 41.25). _ 
     Select 
    Selection.ShapeRange.Adjustments.Item(1) = -0.25029 
    Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "text..." 
    With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 10). _ 
     ParagraphFormat 
     .FirstLineIndent = 0 
     .Alignment = msoAlignLeft 
    End With 
    With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 10).Font 
     .NameComplexScript = "+mn-cs" 
     .NameFarEast = "+mn-ea" 
     .Fill.Visible = msoTrue 
     .Fill.ForeColor.ObjectThemeColor = msoThemeColorLight1 
     .Fill.ForeColor.TintAndShade = 0 
     .Fill.ForeColor.Brightness = 0 
     .Fill.Transparency = 0 
     .Fill.Solid 
     .Size = 11 
     .Name = "+mn-lt" 
    End With 
    Range("P5").Select 

End Sub

Betrachten

Antwort

0

:

Dim shp As String

Sub Bubble() 

    ActiveSheet.Shapes.AddShape(msoShapeCloudCallout, 795, 8.25, 107.25, 41.25). _ 
     Select 

    shp = Selection.Name 
    Selection.ShapeRange.Adjustments.Item(1) = -0.25029 
    Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "text.................." 
    With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 10). _ 
     ParagraphFormat 
     .FirstLineIndent = 0 
     .Alignment = msoAlignLeft 
    End With 
    With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 10).Font 
     .NameComplexScript = "+mn-cs" 
     .NameFarEast = "+mn-ea" 
     .Fill.Visible = msoTrue 
     .Fill.ForeColor.ObjectThemeColor = msoThemeColorLight1 
     .Fill.ForeColor.TintAndShade = 0 
     .Fill.ForeColor.Brightness = 0 
     .Fill.Transparency = 0 
     .Fill.Solid 
     .Size = 11 
     .Name = "+mn-lt" 
    End With 
    Range("P5").Select 
End Sub 

Sub FlipFlop() 
    With ActiveSheet.Shapes(shp) 
     .Visible = Not .Visible 
    End With 
End Sub 

Wir erstellen die Legende mit einem leichten Mod zu Ihrem Bubble() Code. Wir weisen den FlipFlop() Code Ihrer Pfeilform zu.

Jedes Mal, wenn Sie auf den Pfeil klicken, wird das Callout zwischen sichtbar und nicht sichtbar umgeschaltet.

EDIT # 1:

fand ich

the problem. Remove the old code and use: 

Sub Bubble2() 

    ActiveSheet.Shapes.AddShape(msoShapeCloudCallout, 795, 8.25, 107.25, 41.25). _ 
     Select 

    Selection.Name = "zooky" 
    Selection.ShapeRange.Adjustments.Item(1) = -0.25029 
    Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "text.................." 
    With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 10). _ 
     ParagraphFormat 
     .FirstLineIndent = 0 
     .Alignment = msoAlignLeft 
    End With 
    With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 10).Font 
     .NameComplexScript = "+mn-cs" 
     .NameFarEast = "+mn-ea" 
     .Fill.Visible = msoTrue 
     .Fill.ForeColor.ObjectThemeColor = msoThemeColorLight1 
     .Fill.ForeColor.TintAndShade = 0 
     .Fill.ForeColor.Brightness = 0 
     .Fill.Transparency = 0 
     .Fill.Solid 
     .Size = 11 
     .Name = "+mn-lt" 
    End With 
    Range("P5").Select 
End Sub 

Sub FlipFlop2() 
    With ActiveSheet.Shapes("zooky") 
     .Visible = Not .Visible 
    End With 
End Sub 

statt.

+0

Wenn ich dies tue, wird mein Blatt leer: D – zooky

+0

@z Wiederholen Sie dies auf einem leeren Blatt. –

+0

@zooky Siehe meine ** EDIT # 1 ** –

Verwandte Themen