VB6.0からPDFの起動

解決


びらちん  2004-01-21 14:31:13  No: 81610  IP: [192.*.*.*]

初めて質問させていただきます。
よろしくお願いします。
VB6.0からPDFファイルの起動をしたいと思っています。
色々とWEBを探しては見たのですが出来ずに困っています。
WEBで見つけたソースでエラーがでてしまうので
そこの対処方を教えていただけませんでしょうか。

    Dim bok As Boolean
    Dim AcroApp As Object, AVDoc As Object

    Set AcroApp = CreateObject("AcroExch.App")
    Set AVDoc = CreateObject("AcroExch.AVDoc")
    bok = AVDoc.Open(PDFFile, "")  'Text1.Text = "c:\test.pdf"

    AcroApp.Show '

3行目のSet AcroApp = CreateObject("AcroExch.App")の所で
実行時エラー429
ActiveXコンポーネントはオブジェクトを作成できませんと言われてしまいます。
何か他に必要な事があるのか探して見ましたが、わかりませんでした。
助言をお願いします。

編集 削除
k.k  2004-01-21 14:52:36  No: 81611  IP: [192.*.*.*]

ActiveXコントロール「ActiveX用 Acrobat コントロール」というのが提供されていると思いますのでこれを使用したほうがいいのではないでしょうか?

編集 削除
とろ  2004-01-21 14:57:25  No: 81612  IP: [192.*.*.*]

> Set AcroApp = CreateObject("AcroExch.App")
などは、 Adobe Acrobat が
インストールされていないと使用できませんよ。

Acrobat Reader で表示させるならば、
ShellExecute API で十分だと思いますけど。

VB フォーム上に PDF ファイルを表示させたい場合は、
Acrobat Reader の親ウィンドウをフォームにしちゃうとか、
あるいは、 Acrobat Reader がインストールされていれば、
pdf.ocx があるはずなので、それをコンポーネントで追加して、
それを使用するとか。

編集 削除
びらちん  2004-01-21 15:31:05  No: 81613  IP: [192.*.*.*]

kkさん、とろさん、ありがとうございます。
Acrobat Reader は入れてあります。Readerだけでは駄目でしょうか?
バージョンは6.0です。

Shellexecuteは試してみたのですが、クライアントのAcrobat Reader のバージョンが違いインストールされているフォルダが違うためエラーになってしまいました。
PDF.OCXも試しては見たのですが、VBのフォーム上に表示のため
没になってしまいました。
そのため違う方法を探していたらWEBでソースを見つけたしだいです。
これまでの過程を書かずにしまってすみませんでした。

編集 削除
とろ  2004-01-21 16:08:24  No: 81614  IP: [192.*.*.*]

> Shellexecute は試してみたのですが、
> クライアントの Acrobat Reader のバージョンが違い
> インストールされているフォルダが違うためエラーになってしまいました。

インストールされているフォルダとかバージョンは関係ないと思いますけど...

ShellExecute API は、簡単に言うと
エクスプローラでファイル(アイコン)を
ダブルクリックした時の処理を行うようなものですよ。
エラーになったPCでは、エクスプローラからでも
PDF ファイルを開くことができないのでしょうか?
# 拡張子 PDF に関連付けされたアプリケーションは
# 普通 Acrobat Reader だと思いますけど。

編集 削除
びらちん  2004-01-21 16:43:51  No: 81615  IP: [192.*.*.*]

とろさんありがとうございます。

とっても、大きな勘違いをしておりました。
以前使っていたのはShell関数でした。
ShellExecute を使う事で解決しました。

お手数をおかけしました。
ありがとうございました。

編集 削除