0

多数の PDF が埋め込まれたワード ドキュメントに取り組んでおり、それらを VBA マクロで有効にする必要があります。だからここに私がやっていることがあります:

ThisDocument.InlineShapes(appropriate_number).OLEFormat.Activate

しかし、問題は、任意のインデックス番号で各 pdf を参照する必要があるということは、既存の 2 つの PDF の間に別の埋め込み PDF を挿入すると、すべてのコードが壊れる可能性があることです (インデックス番号が特定の埋め込み pdf を参照するため)。シフトします)。

コードに埋め込まれた PDF を参照するより効率的な方法はありますか?

4

1 に答える 1

1

AlternativeTextプロパティを使用して、インライン シェイプを参照できます。PDF がプログラムによって埋め込まれている場合は、各 PDF のファイル名を取得し、そのファイル名を に割り当てますAlternativeText

 NewShapeIndex = ActiveDocument.InlineShapes.Count + 1
 'Code to embed shape and capture filename of PDF
 ActiveDocument.InlineShapes(NewShapeIndex).AlternativeText = CapturedFilename

(PDF が手動で埋め込まれている場合は、埋め込まれた PDF アイコンを右クリックし、[オブジェクトの書式設定] を選択して、各ファイルの [代替テキスト] タブのボックスにファイル名を入力します。)

次に、InlineShapesコレクションを使用して、ファイル名に基づいてファイルを起動します。

Public Sub PDFindex(PDFname As String)

Dim Myshape As InlineShape
Dim IndexCount As Integer
IndexCount = 1

For Each Myshape In ActiveDocument.InlineShapes

    If Myshape.AlternativeText = PDFname Then
        ActiveDocument.InlineShapes(IndexCount).OLEFormat.Activate
    End If
    IndexCount = IndexCount + 1

Next

End Sub

このようにして、ファイルの名前を知っている限り、任意のファイルを起動できます

 PDFindex filename
于 2012-09-15T04:22:41.447 に答える