Excel VBA Kullanarak Resimler Nasıl Eklenir

İçindekiler:

Anonim

Merhaba! Anlamlı resimlerle panoyu sallamaya çalışmak. Veya sadece Excel VBA hücresine resim eklemeye çalışıyorum. Pekala, excel hücrelerine resim ekleyemezsiniz, ancak excel hücresine sığacak şekilde yeniden boyutlandırabilirsiniz. Manuel olarak yapmak çok zaman alacak ve can sıkıcı. Çözüm nedir? Doğru tahmin ettiniz, bir VBA Makrosu. Şimdi kodlayacağız.

Aşağıda, bir klasörden bir hücreye veya belirli bir aralığa resim eklemek için excel vba kodu verilmiştir. Alt+F11 tuşlarına basın, bir modül ekleyin ve bu kodu kopyalayın.

Endişelenmeyin, ihtiyaçlarınıza göre değiştirebilmeniz için aşağıda açıkladım.

Bir Hücreye veya Verilen Aralığa VBA ile Excel Hücresine Resim Ekleme

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

Alt Bitiş
Sub InsertPictureInRange(PictureFileName As String, TargetCells As Range)

' bir resim ekler ve onu TargetCells aralığına uyacak şekilde yeniden boyutlandırır

Dim p Obje Olarak, t Çift Olarak, l Olarak Çift, w Olarak Çift, h Olarak Çift

TypeName(ActiveSheet) "Çalışma Sayfası" ise Sub'dan Çıkın

Dir(PictureFileName) = "" ise Sub'dan Çıkın

' resmi içe aktar

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

'pozisyonları belirle

TargetCells ile

t = .Üst

l = .Sol

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

h = .Offset(.Satır Sayısı, 0).Üst - .Üst

İle bitmek

'pozisyon resmi

p ile

.Üst = t

.Sol = l

.Genişlik = w

.Yükseklik = h

İle bitmek

p = Hiçbir şey ayarla

Alt Bitiş

Açıklama:

Bölüm 1:

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

Alt Bitiş

Yukarıdaki alt yordam, yalnızca iki argüman alan ana alt yordamımız InsertPictureInRange'i çağırır. İlk olarak resim dosyasının adresi ile adı ve ikinci Aralık resmi Excel'de eklemek istediğiniz yer.

Bölüm 2:

Sub InsertPictureInRange(PictureFileName As String, TargetCells As Range)' bir resim ekler ve onu TargetCells rangeDim p As Object, t As Double, l As Double, w As Double, h As Double'a uyacak şekilde yeniden boyutlandırır

TypeName(ActiveSheet) "Çalışma Sayfası" ise Sub'dan Çıkın

Dir(PictureFileName) = "" ise Sub'dan Çıkın

' resmi içe aktar

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

'pozisyonları belirle

TargetCells ile

t = .Üst

l = .Sol

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

h = .Offset(.Satır Sayısı, 0).Üst - .Üst

İle bitmek

'pozisyon resmi

p ile

.Üst = t

.Sol = l

.Genişlik = w

.Yükseklik = h

İle bitmek

p = Hiçbir şey ayarla

Alt Bitiş

Bu, resmi verilen aralığa uyacak şekilde ekleyen ve yeniden boyutlandıran ana alt yordamdır. Hadi araştıralım.

Dim p Obje Olarak, t Çift Olarak, l Olarak Çift, w Olarak Çift, h Olarak Çift

Bu satır sadece ihtiyacımız olacak değişken bir bildirimdir. Not p Nesne değişkeni olarak. Bu değişken resmimizi tutacaktır.

TypeName(ActiveSheet) "Çalışma Sayfası" ise Sub'dan Çıkın

Activesheet'in çalışma sayfası olup olmadığını kontrol eder. Olmazsa, koddan hemen çıkar ve hiçbir şey olmaz.

Dir(PictureFileName) = "" ise Sub'dan Çıkın

Excel hücresine fotoğraf eklemek için görüntü için bir adres sağladığınızı kontrol edin. Eğer sağlamadıysanız, hemen çıkacaktır ve hiçbir şey olmayacaktır.

Set p = ActiveSheet.Pictures.Insert(PictureFileName)

Şimdi, bu en önemli çizgi. Bu satırda Activesheet'in Insert fonksiyonunu kullanıyoruz. Resimler nesne ve daha önce beyan ettiğimiz p nesnesine koyar. Şimdi p kullanarak görüntünün genişliğini ve uzunluğunu kolayca ayarlayabiliriz.

TargetCells ile t = .Top l = .Left w = .Offset(0, .Columns.Count).Left - .Left h = .Offset(.Rows.Count, 0).Üst - .Üst Bitiş 

Bu segment sadece verilen aralıktan Uzunluk, Genişlik, Üst ve Sol alır.

p ile .Üst = t .Sol = l .Genişlik = w Yükseklik = h İle Bitir

Bu kısım, görüntüyü verilen aralığa ayarlar. Ve bitti. Son olarak, onu hiçbir şeye ayarlayarak serbest bırakıyoruz.

p = Hiçbir şey ayarla

Bu hat ücretsiz hafıza.

Bu kod Excel 2016, Excel 2013, Excel 2010 ve Excel 2007'de çalışacaktır.

Burada görüntüyü A1:C10 aralığında eklemek istedim. Bunu yapmak için aşağıdaki kodumu değiştirdim

Alt TestInsertPictureInRange()InsertPictureInRange "C:\Users\Manish Singh\Downloads\biker.jpg", _Menzil("A1:C10")

Alt Bitiş

Ve aldığım şey bu. Tam olarak istediğim şey.


Yani evet. Excel hücresine veya aralığına resim eklemek için bu kodu kullanın. Kodun etrafında oynayın. Farklı formatlar, garip aralıklar eklemeye çalışın ve ne olduğunu görün. Herhangi bir sorunuz varsa veya herhangi bir zorlukla karşı karşıyaysanız, bana sormak için aşağıdaki yorum bölümünü kullanın.
Dosyayı indir

Microsoft Excel 2016'da VBA Kullanarak Resim Ekleme

Popüler Makaleler:

Verimliliğinizi Artıracak 50 Excel Kısayolu

Excel'de DÜŞEYARA İşlevi nasıl kullanılır?

Excel'de COUNTIF işlevi nasıl kullanılır?

Excel'de SUMIF İşlevi nasıl kullanılır?