Как добавить несколько перекрестных ссылок на несколько изображений, добавленных в документ Word? - PullRequest
0 голосов
/ 19 февраля 2019

Я могу добавить несколько изображений в текстовый документ, используя VBA, и в то же время я не могу добавить несколько перекрестных ссылок, используя VBA.

Sub check () Dim strFolderPath strFolderPath = "C:\ images "Dim objWord

Dim objDoc

Dim objSelection

Dim objShapes

Dim objFSO

Dim objFolder

Установите objWord = CreateObject ("Word.Application")

Установите objFSO = CreateObject ("Scripting.FileSystemObject")

Установите objFolder = objFSO.GetFolder (strFolderPath)

Установите objDoc = objWord.Documents.Open ("D: \ myfile.docx")

objWord.Visible = True

Установите objSelection = objWord.Selection

для каждого изображенияВ objFolder.Files

ImgPath = Img.Path

   objSelection.InlineShapes.AddPicture (ImgPath       

objSelection.insertbreak

Далее

End Sub

1 Ответ

0 голосов
/ 19 февраля 2019

Я собираюсь показать вам пример.Вам придется изменить его в соответствии с вашими потребностями.Я собираюсь вставить 2 изображения и создать Cross Reference.Я прокомментировал код, чтобы у вас не было проблем с его пониманием.

Логика:

  1. Добавление изображения
  2. Добавление подписи к изображению
  3. Создать перекрестную ссылку
  4. Вставить разрыв страницы?
  5. Повторите вышеуказанный шаг

Код:

Sub Sample()
    Dim shp As InlineShape
    Dim n As Long

    '
    '~~> Insert Image 1
    '
    Set shp = Selection.InlineShapes.AddPicture(FileName:="C:\ImageA.Png", _
                                                LinkToFile:=False, _
                                                SaveWithDocument:=True)

    '~~> Adding a caption
    n = 1
    CaptionLabels.Add Name:="MyImage" & n

    shp.Select
    Selection.InsertCaption Label:="MyImage" & n, TitleAutoText:="", Title:="", _
    Position:=wdCaptionPositionBelow, ExcludeLabel:=0

    Selection.InsertBreak


    '
    '~~> Insert Image 2
    '
    Set shp = Selection.InlineShapes.AddPicture(FileName:="C:\ImageB.Png", _
                                                LinkToFile:=False, _
                                                SaveWithDocument:=True)

    '~~> Adding a caption
    n = n + 1
    CaptionLabels.Add Name:="MyImage" & n

    shp.Select
    Selection.InsertCaption Label:="MyImage" & n, TitleAutoText:="", Title:="", _
    Position:=wdCaptionPositionBelow, ExcludeLabel:=0

    Selection.InsertBreak

    '~~> Creating cross reference
    For n = 1 To 2
        Selection.InsertCrossReference ReferenceType:="MyImage" & n, ReferenceKind:= _
        wdEntireCaption, ReferenceItem:=1, InsertAsHyperlink:=True, _
        IncludePosition:=False, SeparateNumbers:=False, SeparatorString:=" "
    Next n
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...