Word macro để thay thế hình ảnh bằng chỉ mục được đánh số và di chuyển hình ảnh đến cuối tài liệu


0

Tôi muốn tạo một macro Word để tách văn bản và hình ảnh. Macro nên chèn văn bản ở vị trí đầu tiên và di chuyển hình ảnh bên trong văn bản đến cuối tài liệu và thay thế hình ảnh bằng một chỉ mục hiển thị số lượng hình ảnh, bắt đầu từ hình ảnh đầu tiên đến hình ảnh cuối cùng. Tôi sẽ đánh giá cao nếu ai đó có thể giúp với điều này.

Tôi đã xem trong nhiều trang web và tôi đã phát triển mã sau đây. Mã này chỉ đơn giản là thay thế bất kỳ hình ảnh trong tài liệu bằng một văn bản là một loại chỉ mục. Ví dụ, nó thay thế hình ảnh đầu tiên chỉ bằng chỉ mục đơn giản như là hình ảnh hình ảnh trực tuyến. Nhưng vấn đề của tôi là tôi không muốn thay thế hình ảnh bằng một chỉ mục văn bản được đánh số. Mục tiêu của tôi cũng là di chuyển ví dụ hình ảnh 1 đến cuối tài liệu. Điều này sẽ xảy ra đối với hình ảnh thứ hai trong tài liệu thay thế hình ảnh thứ 2 bằng một chỉ số được đánh số và sau đó di chuyển hình ảnh đến cuối tài liệu (sau hình ảnh đầu tiên) và vv cho các hình ảnh khác. Tôi đoán rằng mã này phải được thêm vào với một số mã khác để thực hiện điều này. nếu ai đó có thể giúp đỡ, nó sẽ giúp ích rất nhiều cho việc tạo các trang web phù hợp để in trên giấy tờ bằng cách sử dụng macro từ Microsoft. bởi vì đôi khi không phải lúc nào cũng cần in hình ảnh trong tài liệu và chỉ riêng văn bản là đủ.

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

Câu trả lời:


0

Sau đây sẽ lặp qua các hình dạng nội tuyến, thêm các đoạn văn vào cuối tài liệu và di chuyển các hình dạng nội tuyến ở đó

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

Lưu ý rằng vì bạn cần một bộ đếm dù sao, bạn có thể sử dụng nó để lặp qua inlineShapes, bằng cách sử dụng For Each oILShp In ActiveDocument.InlineShapes sẽ khiến bạn lặp đi lặp lại vô tận thông qua các hình dạng bạn sẽ tiếp tục di chuyển đến cuối tài liệu.


Cảm ơn bạn. nó đang làm việc. với điều này, sẽ dễ dàng sao chép một nội dung trang web bao gồm hình ảnh và sau đó dán bằng chữ. Cuối cùng, tôi có thể chọn có in hình ảnh hay không vì chúng không nằm trong văn bản.
Veronica

Nếu câu trả lời này phù hợp với bạn, bạn nên đánh dấu nó là chính xác - rốt cuộc chúng tôi không làm điều này miễn phí :)
cybernetic.nomad
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.