Справочное изображение Excel 2007, чтобы программно скрыть / воспроизвести его - PullRequest
3 голосов
/ 21 февраля 2012

полный нуб на скриптах Excel 2007 или VBA здесь ...

Мне нужно программно выбрать некоторые изображения (на самом деле это все одно и то же изображение) и спрятать их, или, если это невозможно, воспроизвести фиксированное изображение в определенных местах листа ...

Количество отображаемых изображений контролируется счетчиком некоторого диапазона строк. Если какая-то строка в диапазоне заполнена данными, то должно отображаться одно изображение, если нет, то это изображение не будет отображаться ... это делается на другом листе документа ...

Есть ли способ добиться этого?

1 Ответ

1 голос
/ 22 февраля 2012

Вот что я использовал:

' Manages Images in Img worksheet, according to values captured at Ref worksheet
' Ref = worksheet to know if image is to be displayed, 
' Cells Ax are empty when we're not displaying image or else it'll be displayed
' Img = worksheet for the images, each image is named 'Picture x'
' N = Max amount of images to show/hide
Public Function ManImages(ByVal N As Integer, _
    ByVal Ref As Integer, ByVal Img As Integer)

    Set ref = Worksheets(Ref)

    For x = 1 To N
        If ref.Range("A" & x) <> "" Then
            a = HideImage(x, False, Img)
        Else
            a = HideImage(x, True. Img)
        End If
    Next x
End Sub

' Hides or Shows images by index according to fixed name of the shapes
' ind is the image to manage
' st is True to show, False to hide
' Img is the worksheet where the images live
Public Function HideImage(ByVal ind As Integer, ByVal st As Boolean, 
    ByVal Img As Integer) As String

    Set doc = Worksheets(Img)
    doc.Shapes("Picture " & ind).Visible = st

    HideImages = st
End Function
...