So fügen Sie Bilder mit Excel VBA ein

Inhaltsverzeichnis:

Anonim

Hi! Versuchen, das Armaturenbrett mit aussagekräftigen Bildern zu rocken. Oder versuchen Sie einfach, ein Bild in die Excel-VBA-Zelle einzufügen. Nun, Sie können keine Bilder in Excel-Zellen einfügen, aber Sie können die Größe ändern, um sie in eine Excel-Zelle zu passen. Die manuelle Ausführung nimmt viel Zeit in Anspruch und ist ärgerlich. Was ist also die Lösung? Sie haben es richtig erraten, ein VBA-Makro. Wir werden jetzt codieren.

Unten ist der Excel-VBA-Code zum Einfügen eines Bildes aus einem Ordner in eine Zelle oder einen bestimmten Bereich. Drücken Sie Alt+F11, fügen Sie ein Modul ein und kopieren Sie diesen Code.

Keine Sorge, ich habe es unten erklärt, damit Sie es nach Ihren Bedürfnissen ändern können.

Bild in Excel-Zelle mit VBA in eine Zelle oder einen bestimmten Bereich einfügen

Sub TestInsertPictureInRange()InsertPictureInRange "C:\Ordnername\PictureFileName.gif", _Range("B5:D10")

End Sub
Sub InsertPictureInRange(PictureFileName As String, TargetCells As Range)

' fügt ein Bild ein und passt die Größe an den TargetCells-Bereich an

Dim p als Objekt, t als Double, l als Double, w als Double, h als Double

Wenn TypeName(ActiveSheet) "Arbeitsblatt" dann Exit Sub

If Dir(PictureFileName) = "" Then Exit Sub

'Bild importieren

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

'Positionen bestimmen

Mit TargetCells

t = .Top

l = .Links

w = .Offset(0, .Spalten.Anzahl).Links - .Links

h = .Offset(.Rows.Count, 0).Top - .Top

Ende mit

'Positionsbild

Mit P

.Oben = t

.Links = l

.Breite = w

.Höhe = h

Ende mit

Setze p = Nichts

End Sub

Erläuterung:

Teil 1:

Sub TestInsertPictureInRange()InsertPictureInRange "C:\Ordnername\PictureFileName.gif", _Range("B5:D10")

End Sub

Die obige Unterroutine ruft einfach unsere Hauptunterroutine InsertPictureInRange auf, die nur zwei Argumente akzeptiert. Zuerst die Adresse der Bilddatei mit ihrem Namen und der zweite Bereich, in den Sie das Bild in Excel einfügen möchten.

Teil 2:

Sub InsertPictureInRange(PictureFileName As String, TargetCells As Range)' fügt ein Bild ein und passt es an den TargetCells-Bereich an.Dim p As Object, t As Double, l As Double, w As Double, h As Double

Wenn TypeName(ActiveSheet) "Arbeitsblatt" dann Exit Sub

If Dir(PictureFileName) = "" Then Exit Sub

'Bild importieren

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

'Positionen bestimmen

Mit TargetCells

t = .Top

l = .Links

w = .Offset(0, .Spalten.Anzahl).Links - .Links

h = .Offset(.Rows.Count, 0).Top - .Top

Ende mit

'Positionsbild

Mit P

.Oben = t

.Links = l

.Breite = w

.Höhe = h

Ende mit

Setze p = Nichts

End Sub

Dies ist die Hauptunterroutine, die das Bild einfügt und die Größe ändert, damit es in den angegebenen Bereich passt. Tauchen wir ein.

Dim p als Objekt, t als Double, l als Double, w als Double, h als Double

Diese Zeile ist nur eine Variablendeklaration, die wir benötigen. Hinweis p Als Objektvariable. Diese Variable hält unser Bild.

Wenn TypeName(ActiveSheet) "Arbeitsblatt" dann Exit Sub

Es prüft, ob das Activesheet ein Arbeitsblatt ist oder nicht. Wenn dies nicht der Fall ist, wird der Code sofort beendet und nichts passiert.

If Dir(PictureFileName) = "" Then Exit Sub

Überprüfen Sie, ob Sie eine Adresse für das Bild angegeben haben, um ein Foto in die Excel-Zelle einzufügen. Wenn Sie es nicht angegeben haben, wird es sofort beendet und es passiert nichts.

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

Das ist jetzt die wichtigste Zeile. In dieser Zeile verwenden wir die Einfügefunktion von Activesheet. Pictures-Objekt und fügen Sie es in das zuvor deklarierte Objekt p ein. Jetzt können wir mit p ganz einfach die Breite und Länge des Bildes anpassen.

Mit TargetCells t = .Top l = .Left w = .Offset(0, .Columns.Count).Left - .Left h = .Offset(.Rows.Count, 0).Top - .Top End With 

Dieses Segment erhält nur Länge, Breite, Oben und Links aus dem angegebenen Bereich.

Mit p .Oben = t .Links = l .Breite = w Höhe = h Ende Mit

Dieser Teil passt das Bild an den angegebenen Bereich an. Und es ist vollbracht. Schließlich setzen wir es frei, indem wir es auf nichts setzen.

Setze p = Nichts

Speicher dieser Zeile frei.

Dieser Code funktioniert in Excel 2016, Excel 2013, Excel 2010 und Excel 2007.

Hier wollte ich das Bild im Bereich A1:C10 einfügen. Dazu habe ich meinen Code unten modifiziert

UntertestInsertPictureInRange()InsertPictureInRange "C:\Users\Manish Singh\Downloads\biker.jpg", _Bereich("A1: C10")

End Sub

Und das habe ich bekommen. Genau das was ich wollte.


Also, ja. Verwenden Sie diesen Code, um ein Bild in die Excel-Zelle oder den Bereich einzufügen. Spielen Sie mit dem Code herum. Versuchen Sie, verschiedene Formate und seltsame Bereiche einzufügen, und sehen Sie, was passiert. Wenn Sie Fragen haben oder vor einer Herausforderung stehen, verwenden Sie den folgenden Kommentarbereich, um mich zu fragen.
Download-Datei

Einfügen von Bildern mit VBA in Microsoft Excel 2016

Populäre Artikel:

50 Excel-Kurzbefehle zur Steigerung Ihrer Produktivität

So verwenden Sie die SVERWEIS-Funktion in Excel

So verwenden Sie die ZÄHLENWENN-Funktion in Excel

So verwenden Sie die SUMIF-Funktion in Excel