Jak wstawiać zdjęcia za pomocą Excel VBA

Spisie treści:

Anonim

Cześć! Próbuję wstrząsnąć deską rozdzielczą znaczącymi zdjęciami. Lub po prostu próbuję wstawić obraz do komórki Excel VBA. Cóż, nie możesz wstawiać zdjęć do komórek programu Excel, ale możesz zmienić ich rozmiar, aby pasowały do ​​komórki programu Excel. Robienie tego ręcznie zajmie dużo czasu i jest denerwujące. Więc jakie jest rozwiązanie? Zgadłeś, makro VBA. Zakodujemy teraz.

Poniżej znajduje się kod Excel vba do wstawiania obrazu z folderu do komórki lub określonego zakresu. Naciśnij Alt+F11, wstaw moduł i skopiuj ten kod.

Nie martw się, wyjaśniłem to poniżej, abyś mógł go zmodyfikować zgodnie z własnymi potrzebami.

Wstaw obraz w komórce Excela z VBA do komórki lub podanego zakresu

PodtestInsertPictureInRange()InsertPictureInRange "C:\FolderName\PictureFileName.gif", _Range("B5:D10")

Napis końcowy
Sub InsertPictureInRange(PictureFileName As String, TargetCells As Range)

' wstawia obraz i zmienia jego rozmiar, aby pasował do zakresu TargetCells

Dim p jako obiekt, t jako podwójny, l jako podwójny, w jako podwójny, h jako podwójny

Jeśli TypeName (ActiveSheet) "Worksheet" to wyjdź z Sub

Jeśli Dir(PictureFileName) = "" Następnie wyjdź z Sub

'importuj zdjęcie

Ustaw p = ActiveSheet.Pictures.Insert(PictureFileName)

'określ pozycje'

Z komórkami docelowymi

t = .Góra

l = .W lewo

w = .Offset(0, .Columns.Count).Left - .Left

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

Kończyć z

'Pozycja obrazu

Z p

.Góra = t

.W lewo = l

.Szerokość = w

.Wysokość = h

Kończyć z

Ustaw p = Nic

Napis końcowy

Wyjaśnienie:

Część 1:

PodtestInsertPictureInRange()InsertPictureInRange "C:\FolderName\PictureFileName.gif", _Range("B5:D10")

Napis końcowy

Powyższy podprogram wywołuje po prostu nasz główny podprogram InsertPictureInRange, który przyjmuje tylko dwa argumenty. Najpierw adres pliku obrazu z jego nazwą, a drugi Zakres, w którym chcesz wstawić obraz w Excelu.

Część 2:

Sub InsertPictureInRange(PictureFileName As String, TargetCells As Range)' wstawia obraz i zmienia jego rozmiar, aby dopasować go do zakresu TargetCellsDim p As Object, t As Double, l As Double, w As Double, h As Double

Jeśli TypeName (ActiveSheet) "Worksheet" to wyjdź z Sub

Jeśli Dir(PictureFileName) = "" Następnie wyjdź z Sub

'importuj zdjęcie

Ustaw p = ActiveSheet.Pictures.Insert(PictureFileName)

'określ pozycje'

Z komórkami docelowymi

t = .Góra

l = .W lewo

w = .Offset(0, .Columns.Count).Left - .Left

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

Kończyć z

'Pozycja obrazu

Z p

.Góra = t

.W lewo = l

.Szerokość = w

.Wysokość = h

Kończyć z

Ustaw p = Nic

Napis końcowy

Jest to główny podprogram, który wstawia i zmienia rozmiar obrazu, aby pasował do podanego zakresu. Zagłębmy się w to.

Dim p jako obiekt, t jako podwójny, l jako podwójny, w jako podwójny, h jako podwójny

Ta linia to tylko deklaracja zmiennej, której będziemy potrzebować. Uwaga p Jako zmienna obiektu. Ta zmienna zatrzyma nasz obraz.

Jeśli TypeName (ActiveSheet) "Worksheet" to wyjdź z Sub

Sprawdza, czy Activesheet jest arkuszem roboczym, czy nie. Jeśli tak się nie stanie, natychmiast wyjdzie z kodu i nic się nie stanie.

Jeśli Dir(PictureFileName) = "" Następnie wyjdź z Sub

Sprawdź, czy podałeś adres obrazu, aby wstawić zdjęcie do komórki programu Excel. Jeśli go nie podałeś, natychmiast wyjdzie i nic się nie stanie.

Ustaw p = ActiveSheet.Pictures.Insert(PictureFileName)

To jest najważniejsza linia. W tym wierszu używamy funkcji Wstaw Activesheet. Obiekt Pictures i wstawiamy go do obiektu p, który zadeklarowaliśmy wcześniej. Teraz za pomocą p możemy łatwo dostosować szerokość i długość obrazu.

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

Ten segment po prostu pobiera długość, szerokość, górną i lewą część z podanego zakresu.

Z p .Top = t .Left = l .Szerokość = w Wysokość = h Koniec Z

Ta część dopasowuje obraz do podanego zakresu. I gotowe. Wreszcie, uwalniamy go, ustawiając go na nic.

Ustaw p = Nic

Ta linia wolna pamięć.

Ten kod będzie działał w programach Excel 2016, Excel 2013, Excel 2010 i Excel 2007.

Tutaj chciałem wstawić obraz w zakresie A1:C10. Aby to zrobić, zmodyfikowałem mój kod poniżej

PodtestInsert PictureInRange()InsertPictureInRange "C:\Użytkownicy\Manish Singh\Downloads\bike.jpg", _Zasięg("A1:C10")

Napis końcowy

I to właśnie dostałem. Dokładnie to, czego chciałem.


Więc tak. Użyj tego kodu, aby wstawić obraz do komórki lub zakresu programu Excel. Baw się kodem. Spróbuj wstawić różne formaty, dziwne zakresy i zobacz, co się stanie. Jeśli masz jakieś pytania lub stoisz przed jakimkolwiek wyzwaniem, skorzystaj z poniższej sekcji komentarzy, aby mnie zapytać.
Pobieranie pliku

Wstaw obrazy za pomocą VBA w programie Microsoft Excel 2016

Popularne artykuły:

50 skrótów Excela, które zwiększą Twoją produktywność

Jak korzystać z funkcji WYSZUKAJ.PIONOWO w programie Excel

Jak korzystać z funkcji LICZ.JEŻELI w programie Excel

Jak korzystać z funkcji SUMA.JEŻELI w programie Excel