Görüntüleri numaralı dizinle değiştirmek ve görüntüyü belgenin sonuna taşımak için kullanılan Word makrosu


0

Metin ve görüntüleri ayırmak için bir Word makrosu oluşturmak istiyorum. Makro metni ilk yere yerleştirmeli ve görüntüleri metnin içindeki belgenin sonuna taşımalı ve görüntüyü ilk görüntüden son görüntüye kadar görüntü sayısını gösteren bir dizinle değiştirmelidir. Birisi bu konuda yardımcı olabilirse sevinirim.

Birçok siteye baktım ve aşağıdaki kodu geliştirdim. Bu kod, belgedeki herhangi bir görüntüyü, bir tür dizin olan bir metinle değiştirir. Örneğin, ilk görüntüyü “image1.jpg” gibi basit dizinle değiştirir. Ancak benim sorunum, görüntüyü yalnızca numaralı metin diziniyle değiştirmek istemem. Hedefim ayrıca, örneğin 1 resmini belgenin sonuna taşımak. Bu, ikinci görüntüyü numaralandırılmış bir dizinle değiştiren ve ardından görüntüyü belgenin sonuna (ilk görüntüden sonra) ve diğer görüntüler için devam ettiren belgedeki ikinci görüntü için gerçekleşmelidir. Bunun gerçekleşmesi için bu kodun başka bir kodla eklenmesi gerektiğini düşünüyorum. Birisi yardım edebilirse, web sayfalarını Microsoft Word makrosu kullanarak kağıtlara yazdırmak için uygun hale getirmek için çok yardımcı olacaktır. Çünkü bazen belgedeki görüntüleri basmak her zaman gerekli değildir ve tek başına metin yeterli olacaktır.

Dim oILShp As InlineShape
Dim ILShpIndex As Integer
For Each oILShp In ActiveDocument.InlineShapes
    ILShpIndex = ILShpIndex + 1
    'insert text in place where InlineShape is located
    ActiveDocument.Range(oILShp.Range.Start, oILShp.Range.End).Text = _
                                "[Image" & ILShpIndex & ".Jpg]"
    'delete picture is not needed - it was simply replaced with text

Next

Yanıtlar:


0

Aşağıdakiler satır içi şekillerde dolaşacak, belgenin sonuna paragraflar ekleyecek ve satır içi şekilleri oraya taşıyacak

Dim oILShp As InlineShape
Dim ILShpIndex As Long
Dim oPara1 As Paragraph

With ActiveDocument
    .Content.Paragraphs.Add
    For ILShpIndex = 1 To .InlineShapes.Count
        Set oILShp = .InlineShapes(1)
        Set oPara1 = .Content.Paragraphs.Add
        oPara1.Range.InsertParagraphAfter
        oPara1.Range.FormattedText = oILShp.Range.FormattedText
        .Range(oILShp.Range.Start, oILShp.Range.End).Text = "[Image" & ILShpIndex & ".Jpg]"
    Next ILShpIndex
End With

Herhangi bir sayaca ihtiyaç duyduğunuzdan, onu kullanarak inlineShapes'te döngü içinde kullanabileceğinizi unutmayın. For Each oILShp In ActiveDocument.InlineShapes Dokümanın sonuna kadar devam ettireceğiniz şekillerin arasında sonsuz şekilde dolaşmanıza neden olacaktır.


Teşekkür ederim. çalışıyor. Bununla, resimler içeren bir web sitesi içeriğini kopyalamak ve sonra kelimeyi yapıştırmak kolay olacaktır. Son olarak, metin içinde olmadıkları için görüntüleri basıp yazmamayı seçebilirim.
Veronica

Bu cevap sizin için işe yararsa, doğru olarak işaretlemelisiniz - sonuçta bunu ücretsiz yapmayız :)
cybernetic.nomad
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.