Giúp đở viết code ẩn và hiện shapes

Liên hệ QC

mymichau

Thành viên hoạt động
Tham gia
28/11/06
Bài viết
172
Được thích
114
Nhờ các bạn giúp code để Ẩn và Hiện shapes trong sheet. Xin cãm ơn
 
Em chào thầy, nhờ thầy giải thích giúp em đoạn code mà thầy đã giúp trong bài #3 được không ạ?
Mã:
Option Explicit
Sub AnHien_Hình()
    With ActiveSheet.Shapes("Rectangle1").TextFrame2.TextRange.Characters
        If .Text = "Hi" & ChrW(7879) & "n" Then
            .Text = ChrW(7848) & "n"
            ActiveSheet.Shapes("Picture1").Visible = False
        Else
            .Text = "Hi" & ChrW(7879) & "n"
            ActiveSheet.Shapes("Picture1").Visible = True
        End If
    End With
End Sub
 
Em chào thầy, nhờ thầy giải thích giúp em đoạn code mà thầy đã giúp trong bài #3 được không ạ?
Mã:
        If .Text = "Hi" & ChrW(7879) & "n" Then
            .Text = ChrW(7848) & "n"
            ActiveSheet.Shapes("Picture1").Visible = False
        Else
            .Text = "Hi" & ChrW(7879) & "n"
            ActiveSheet.Shapes("Picture1").Visible = True
        End If
Code lật qua lật lại giữa hai trạng thái thì giản dị hơn:
Set theShape = ActiveSheet.Shapes("Picture1")
Set theAnHienText = ActiveSheet.Shapes("Rectangle1").TextFrame2.TextRange.Characters
theShape.Visible = Not theShape.Visible
theAnHienText.Text = IIF(theShape.Visible, ChrW(7848) & "n", "Hi" & ChrW(7879) & "n")

Mà tôi cũng chả hiểu "để có thể ẩn/hiện 1 shape mà lại phải tạo 1 shape điều khiển" thì cuối cùng được cái gì?
 
+ Ẩn hiện tất cả Shape
PHP:
Sub HideAllShapes()
    On Error Resume Next
    Static Hide As Boolean: Hide = Not Hide
    ActiveSheet.DrawingObjects.visible = Hide
End Sub
--------------------------
+ Ẩn hiện một Shape:
PHP:
Sub btnHideShape()
    Call HideShape("tên")
End Sub
Sub HideShape(Byval Shape$)
    On Error Resume Next
    ActiveSheet.Shapes(Shape).visible = Not ActiveSheet.Shapes(Shape).visible
End Sub
--------------------------
+ Ẩn hiện nhiều Shape:
PHP:
Sub btnHideMultiShapes()
    Static Hide As Boolean: Hide = Not Hide
    Call HideMultiShapes(Hide, "tên 1", "tên 2", "tên 3") ', ...'
End Sub
Sub HideMultiShapes(ByVal Visible As Boolean, ParamArray Shapes() As Variant)
  Dim Shape
  On Error Resume Next
  For Each Shape In Shapes
    ActiveSheet.Shapes(Shape).Visible = Visible
  Next Shape
End Sub
 
Code lật qua lật lại giữa hai trạng thái thì giản dị hơn:
Set theShape = ActiveSheet.Shapes("Picture1")
Set theAnHienText = ActiveSheet.Shapes("Rectangle1").TextFrame2.TextRange.Characters
theShape.Visible = Not theShape.Visible
theAnHienText.Text = IIF(theShape.Visible, ChrW(7848) & "n", "Hi" & ChrW(7879) & "n")

Mà tôi cũng chả hiểu "để có thể ẩn/hiện 1 shape mà lại phải tạo 1 shape điều khiển" thì cuối cùng được cái gì?
Em cám ơn!
Bài đã được tự động gộp:

+ Ẩn hiện tất cả Shape
PHP:
Sub HideAllShapes()
    On Error Resume Next
    Static Hide As Boolean: Hide = Not Hide
    ActiveSheet.DrawingObjects.visible = Hide
End Sub
--------------------------
+ Ẩn hiện một Shape:
PHP:
Sub btnHideShape()
    Call HideShape("tên")
End Sub
Sub HideShape(Byval Shape$)
    On Error Resume Next
    ActiveSheet.Shapes(Shape).visible = Not ActiveSheet.Shapes(Shape).visible
End Sub
--------------------------
+ Ẩn hiện nhiều Shape:
PHP:
Sub btnHideMultiShapes()
    Static Hide As Boolean: Hide = Not Hide
    Call HideMultiShapes(Hide, "tên 1", "tên 2", "tên 3") ', ...'
End Sub
Sub HideMultiShapes(ByVal Visible As Boolean, ParamArray Shapes() As Variant)
  Dim Shape
  On Error Resume Next
  For Each Shape In Shapes
    ActiveSheet.Shapes(Shape).Visible = Visible
  Next Shape
End Sub
Tuyệt vời anh!
 
Web KT
Back
Top Bottom