質問編集履歴

2 質問に対する追記

miupuu

miupuu score 4

2018/06/28 15:19  投稿

VBAでPDF文書のプロパティ(ページレイアウト)を取得したい
### 前提・実現したいこと
VBA(Excel)でPDF文書のプロパティを取得したいです。いくつかはうまく取得できているのですが、**「ページレイアウト」**の取得方法が分からず困っています。ページレイアウトには、以下のいずれかの値が設定されているので、これらを数値等で取得したいです。
- デフォルト
- 単一ページ
- 連続ページ
- 見開きページ
- 連続見開きページ
- 見開きページ(表紙)
- 連続見開きページ(表紙)
使い道ですが、数百あるPDFファイルを読み込み、設定されているページレイアウトに応じて印刷方法(印刷の向きやNアップ)を制御するための判定材料として使いたいと考えています。
### 補足情報
**「ページレイアウト」**は、Acrobatのメニューから「ファイル」→「文書のプロパティ」の「開き方」タブにあります。
[http://pdf-file.nnn2.com/?p=783](http://pdf-file.nnn2.com/?p=783)で紹介されているようなAcrobatアプリケーションの環境設定ではなく、PDFファイルのプロパティの方を取得したいです。
[http://pdf-file.nnn2.com/?p=783](http://pdf-file.nnn2.com/?p=783)で紹介されているようなAcrobatアプリケーションの環境設定ではなく、PDFファイルのプロパティの方を取得したいです。
### 取得できているその他のプロパティ
質問を受けまして、現在取得できているプロパティのコードを掲載しました。
```Excel lang-VBA
Private Sub GetProperty()
Dim objAcroAVDoc As New Acrobat.AcroAVDoc
Dim objAcroPDDoc As Acrobat.AcroPDDoc
Dim objAcroPDPage As Acrobat.AcroPDPage
Dim objAcroPoint As Acrobat.AcroPoint
Dim objAcroApp As New Acrobat.AcroApp
Dim lRet As Long
Dim fp As String
Dim i As Long
Dim bRet As Boolean
fp = "xxx.pdf"
lRet = objAcroAVDoc.Open(fp, "")
Set objAcroPDDoc = objAcroAVDoc.GetPDDoc
Set objAcroPDPage = objAcroPDDoc.AcquirePage(0)
Set objAcroPoint = objAcroPDPage.GetSize
       
Cells(1,1) = objAcroPDDoc.GetNumPages '★1
Cells(1,2) = objAcroPoint.x '★2
Cells(1,3) = objAcroPoint.y '★3
Cells(1,4) = objAcroApp.GetPreferenceEx(52) '★4
lRet = objAcroAVDoc.Close(1)
Set objAcroPoint = Nothing
Set objAcroPDPage = Nothing
Set objAcroPDDoc = Nothing
Set objAcroAVDoc = Nothing
End Sub
```
上記コードは、掲載用に少しアレンジしています。★1~3のページ数やページサイズは取得できていますが、★4が取れていない箇所で、このコードではAcrobatアプリケーションの環境設定を取得してしまいますので、ファイルに設定されている値を取得できていません。
  • VBA

    3060 questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Excel

    2520 questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • PDF

    411 questions

    PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

  • マクロ

    442 questions

    定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

1 補足の追加

miupuu

miupuu score 4

2018/06/28 14:22  投稿

VBAでPDF文書のプロパティ(ページレイアウト)を取得したい
### 前提・実現したいこと
VBA(Excel)でPDF文書のプロパティを取得したいです。いくつかはうまく取得できているのですが、**「ページレイアウト」**の取得方法が分からず困っています。ページレイアウトには、以下のいずれかの値が設定されているので、これらを数値等で取得したいです。
- デフォルト
- 単一ページ
- 連続ページ
- 見開きページ
- 連続見開きページ
- 見開きページ(表紙)
- 連続見開きページ(表紙)
使い道ですが、数百あるPDFファイルを読み込み、設定されているページレイアウトに応じて印刷方法(印刷の向きやNアップ)を制御するための判定材料として使いたいと考えています。  
 
 
### 補足情報
**「ページレイアウト」**は、Acrobatのメニューから「ファイル」→「文書のプロパティ」の「開き方」タブにあります。
[http://pdf-file.nnn2.com/?p=783](http://pdf-file.nnn2.com/?p=783)で紹介されているようなAcrobatアプリケーションの環境設定ではなく、PDFファイルのプロパティの方を取得したいです。
  • VBA

    3060 questions

    VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

  • Excel

    2520 questions

    Excelは、マイクロソフト社が開発しているデータ集計や分析を行う表計算ソフトの一つです。文書作成や表計算、資料作成などの多彩な機能を備えており、統合パッケージであるMicrosoft Officeに含まれています。

  • PDF

    411 questions

    PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

  • マクロ

    442 questions

    定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る