Bilder i arbetsblad


Här visas ett par exempel på hur vi kan hantera bilder i arbetsblad.

Att infoga bilder direkt i arbetsblad kan dramatisk öka filstorleken varför det bör undvikas i möjligaste mån.
 

Om ett felmeddelande erhålls vid kopiering till VBA-modul så läs mer här»
 

 

(© 2002 - 2004 All rights Colo - Used by permission)

Option Explicit

 

Sub View_Separate_Images_Files()

   '© 2004 Alla rättigheter XL-Dennis

   Dim wsSheet As Worksheet

   Dim rnTarget As Range

 

   Set wsSheet = ActiveSheet

 

   With wsSheet

      Set rnTarget = .Range("B5")

   End With

 

   'Image1 refererat till en skapad Bild-kontroll i arbetsbladet

   'från verktygsfältet Kontroller.

   With wsSheet.OLEObjects("Image1")

      If rnTarget.Value = "AA" Then

         .Object.Picture = LoadPicture("e:\XL\Images\A1.gif")

      ElseIf rnTarget.Value = "BB" Then

         .Object.Picture = LoadPicture("e:\XL\Images\A2.gif")

      End If

   End With  

End Sub

 

Sub View_Images()

   '© 2004 Alla rättigheter XL-Dennis

   Dim wsSheet As Worksheet

   Dim rnTarget As Range

 

   Set wsSheet = ActiveSheet

 

   With wsSheet

      Set rnTarget = .Range("B5")

   End With

 

   With wsSheet

      If rnTarget.Value = "AA" Then

         .Shapes(1).Visible = True

         .Shapes(2).Visible = False

      ElseIf rnTarget.Value = "BB" Then

         .Shapes(2).Visible = True

         .Shapes(1).Visible = False

      Else

         .Shapes(1).Visible = False

         .Shapes(2).Visible = False

      End If

   End With

 End Sub

 

Sub View_Image_In_Cell()

   '© 2004 Alla rättigheter XL-Dennis

   Dim wsSheet As Worksheet

   Dim rnTarget As Range, rnPicture As Range

   Dim oPicture As Picture

   Const stImage As String = "e:\XL\Images\A2.gif"

 

   Set wsSheet = ActiveSheet

 

   With wsSheet

      Set rnTarget = .Range("B5")

      Set rnPicture = .Range("D5")

      'Infogar bilden.

      Set oPicture = .Pictures.Insert(stImage)

   End With

 

   'Anpassar bildstorleken till den underliggande cellens storlek.

   With rnTarget

      oPicture.Height = .Height

      oPicture.Left = .Left

      oPicture.Top = .Top

      oPicture.Width = .Width

   End With

 

End Sub