15. december 2004 - 16:43Der er
5 kommentarer og 1 løsning
VBA ændre størrelse af billede
Jeg bruger følgende til at indsætte et billede i mit ark:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) If Target.Address = "$A$1" Then Select Case Target Case 1 ActiveSheet.Pictures.Delete ActiveSheet.Pictures.Insert ("Y:\Logoer\logo1.jpg") Case 2 ActiveSheet.Pictures.Delete ActiveSheet.Pictures.Insert ("Y:\Logoer\logo2.jpg") Case 3 ActiveSheet.Pictures.Delete ActiveSheet.Pictures.Insert ("Y:\Logoer\logo3.jpg") Case Else ActiveSheet.Pictures.Delete End Select End If End Sub
Hvordan sikrer jeg, at størrelsen er den samme på de forskellige billeder ala:
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Jeg har på ingen måde testet det, men det kunne nok se sådan ud:
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim shpTemp As Shape If Target.Address = "$A$1" Then Select Case Target Case 1 ActiveSheet.Pictures.Delete Set shpTemp = ActiveSheet.Pictures.Insert("Y:\Logoer\logo1.jpg") Case 2 ActiveSheet.Pictures.Delete Set shpTemp = ActiveSheet.Pictures.Insert("Y:\Logoer\logo2.jpg") Case 3 ActiveSheet.Pictures.Delete Set shpTemp = ActiveSheet.Pictures.Insert("Y:\Logoer\logo3.jpg") Case Else ActiveSheet.Pictures.Delete End Select shpTemp.Height = 50 shpTemp.Width = 50 Set shpTemp = Nothing End If End Sub
Kig lige på denne og hjælpen på AddPicture Addpicture's sidste 2 parametre bestemmer størrelsen
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim shptemp As Shape If Target.Address = "$A$1" Then ActiveSheet.Pictures.Delete Select Case Target Case 1
Set shptemp = ActiveSheet.Shapes.AddPicture("Y:\Logoer\logo1.jpg", True, True, 100, 100, 50, 50) Case 2 Set shptemp = ActiveSheet.Shapes.AddPicture("Y:\Logoer\logo2.jpg", True, True, 100, 100, 50, 50)
Case 3 Set shptemp = ActiveSheet.Shapes.AddPicture("Y:\Logoer\logo3.jpg", True, True, 100, 100, 50, 50)
Case Else GoTo exithere End Select 'her ændrer jeg størrelse igen shptemp.Height = 100 shptemp.Width = 100 Set shptemp = Nothing exithere: End If End Sub
Hvis du også vil styre indsættelsesstedet (her styres efter C3):
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim shpTemp As Shape, lTop As Long, lTeft As Long, lWidth As Long, lHeight As Long If Target.Address = "$A$1" Then lTop = Range("C3").Top lleft = Range("C3").Left lWidth = 50 lHeight = 50 ActiveSheet.Pictures.Delete Select Case Target Case 1 Set shpTemp = ActiveSheet.Shapes.AddPicture("Y:\Logoer\logo1.jpg", True, False, lleft, lTop, lWidth, lHeight) Case 2 Set shpTemp = ActiveSheet.Shapes.AddPicture("Y:\Logoer\logo2.jpg", True, False, lleft, lTop, lWidth, lHeight) Case 3 Set shpTemp = ActiveSheet.Shapes.AddPicture("Y:\Logoer\logo3.jpg", True, False, lleft, lTop, lWidth, lHeight) Case Else Exit Sub End Select Set shpTemp = Nothing End If End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.