2017-12-29 4 views
0

Adob​​e Acrobat Type Libraryの参照を避けることはできますか? どうすればわかりません... ActiveXエラーメッセージが表示されます。(VBA)Acrobatタイプライブラリのレイトバインディング(avaoidリファレンス)

残りの部分は重要ではないので、私は自分のコードの抜粋のみを貼り付けます。ここで は、事前バインディング(設定参照)とのコードです:

Dim Fol_Path As String 
Dim Each_Page As Boolean 

Dim AC_PD As Acrobat.AcroPDDoc 
Dim AC_Hi As Acrobat.AcroHiliteList 
Dim AC_PG As Acrobat.AcroPDPage 
Dim AC_PGTxt As Acrobat.AcroPDTextSelect 

Dim OS_FSO As Object 
Dim OS_TxtFile As Object 

Set OS_FSO = CreateObject("Scripting.filesystemobject") 

Dim Ct_Page As Long 
Dim i As Long, j As Long, k As Long 
Dim T_Str As String 

Dim Hld_Txt As Variant 

Each_Page = True 

Set AC_PD = New Acrobat.AcroPDDoc 
Set AC_Hi = New Acrobat.AcroHiliteList 
AC_Hi.Add 0, 32767 

... ... ...

 Set AC_PG = .AcquirePage(i - 1) 

     Set AC_PGTxt = AC_PG.CreateWordHilite(AC_Hi) 
+0

「オブジェクトとして」宣言すると、レイトバインディング(別名IDispatch)が強制されます。次に、 'set x = CreateObject(objectname)'(アプリケーションオブジェクト用)または 'set x = GetObject(filename)'(ドキュメントオブジェクト用)でオブジェクトを作成します。 – ACatInLove

+0

レイトバインディングを使用すると、フォルダ内の各ファイルのドキュメントオブジェクトを作成し、その中に 'PrintOut'コマンドを送信することができます。アプリがそれを印刷することができれば(それ以外の場合は無視することができます)。最初のサブの – ACatInLove

+0

はレイトバインディングを管理していましたが、このサブはPDFファイルを複数のファイルに分割しています。このサブでは問題がありますが、このサブは分割されたPDFファイルを開き、内容全体を読み込んで文字列変数に保存します。 ありがとう@ACatInLove:私はそれを試みますが、特にIDispatchは何ですか? – smartini

答えて

0

@ACatinLove 感謝!出来た! (私のコードは結果として抽出されます)。 Dimの後に "Const AcroExch As Long = 0"と書いておかなければならないのはどこですか?

Dim AC_PD As Object 
Dim AC_Hi As Object 
Dim AC_PG As Object 
Dim AC_PGTxt As Object 

'Const AcroExch As Long = 0 

Dim OS_FSO As Object 
Dim OS_TxtFile As Object 

Set OS_FSO = CreateObject("Scripting.filesystemobject") 

Dim Ct_Page As Long 
Dim i As Long, j As Long, k As Long 
Dim T_Str As String 

Dim Hld_Txt As Variant 

Each_Page = True 

'Set AC_PD = New Acrobat.AcroPDDoc 
'Set AC_Hi = New Acrobat.AcroHiliteList 

Set AC_PD = CreateObject("AcroExch.PDDoc") 
Set AC_Hi = CreateObject("AcroExch.HiliteList") 
関連する問題