var olan kodu ihtiyaca göre düzenleme

Katılım
7 Şubat 2024
Mesajlar
14
Excel Vers. ve Dili
Microsoft Office Professional Plus 2016
Merhaba rica etsem aşağıdaki sorunumu çözer misiniz? Şimdiden çok teşekkür ederin.



Açıklama:

  • Kod1 resimleri toplu olarak adlarıyla beraber ekleme işlmemi yapıyor
  • Kod2 resimlerin genişliklerini ayarlıyor (referans olarak kullanıla bilir)


İstenilen:

  • tek kod ile resimler eklensin (kod 1 yapıyor)
  • resimlerin adları altında yazacak ve resmin ortasında yer alacak
  • resimler eklenirken benim belirlediğim genişlik ve yükseklik ölçülerinde eklenecek
  • üstteki 3 aşama tek kodda birleşecek


KOD1------------------------------------------------------------------------------------------------------------

Sub PicWithCaption()

Dim xFileDialog As FileDialog

Dim xPath, xFile As Variant

On Error Resume Next

Set xFileDialog = Application.FileDialog(msoFileDialogFolderPicker)

If xFileDialog.Show = -1 Then

xPath = xFileDialog.SelectedItems.Item(1)

If xPath <> "" Then

xFile = Dir(xPath & "\.")

Do While xFile <> ""

If UCase(Right(xFile, 3)) = "PNG" Or _

UCase(Right(xFile, 3)) = "TIF" Or _

UCase(Right(xFile, 3)) = "JPG" Or _

UCase(Right(xFile, 3)) = "GIF" Or _

UCase(Right(xFile, 3)) = "BMP" Then

With Selection

.InlineShapes.AddPicture xPath & "\" & xFile, False, True

.InsertAfter vbCrLf

.MoveDown wdLine

.Text = Left(xFile, InStrRev(xFile, ".") - 1) & Chr(10)

.MoveDown wdLine

End With

End If

xFile = Dir()

Loop

End If

End If

End Sub


KOD2-----------------------------------------------------------------------------------------------------------


Sub GenislikAyarla()



genislik = 10



With ActiveDocument

For i = 1 To .InlineShapes.Count

With .InlineShapes(i)

.Height = AspectHt(.Width, .Height, CentimetersToPoints(genislik))

.Width = CentimetersToPoints(genislik)

End With

Next i

End With

End Sub



Private Function AspectHt(ByVal origWd As Long, ByVal origHt As Long, ByVal newWd As Long) As Long

If origWd <> 0 Then

AspectHt = (CSng(origHt) / CSng(origWd)) * newWd

Else

AspectHt = 0

End If

End Function
 
Katılım
9 Şubat 2022
Mesajlar
204
Excel Vers. ve Dili
Office 2021 Türkçe (x64)
Altın Üyelik Bitiş Tarihi
09-02-2027
Hocam, çok katkı veremem ama şunu söyleyeyim, kodların sağlıklı çalışması ve idame ettirilmesi açısından, illa birleştirmeye çalışmayın, 1.makronun işi bitince 2.makroyu çağırabilir, o da 3. yü. Birleştiriseniz sorun çıkma ihtimali artar.
 
Üst