Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 10 Pro : Access 2016)
複数ページあるPDFファイルの任意並べ替えに関して
投稿日時: 18/10/14 18:43:46
投稿者: wand

こんにちは。
 
ECショップの受注明細が一つのPDFファイルへ約200件(ページ)分入っているのですが、
作業効率向上のために並べ替えを行いたいです。
(並べ替え前)受注番号順 ⇒ (並べ替え後)ユニークな商品番号順
 
一度分解して商品番号順に結合することになるかと思いますが、手作業で並べ替えるのでは
なく、なるべく省力化したいと思っています。
そこで、
 
テーブル)
並替前ファイル 並べ替え後ファイル
1       5
2       3
3       1
4       2
5       4
 
を作成するとして、並べ替えて一つのPDFファイルにすることは可能でしょうか。
 
よろしくお願いいたします。

回答
投稿日時: 18/10/15 10:25:01
投稿者: sk

引用:
ECショップの受注明細が一つのPDFファイルへ約200件(ページ)分入っているのですが、
作業効率向上のために並べ替えを行いたいです。

その PDF ファイルが、Access とどう関係しているのでしょうか。
 
引用:
一度分解して商品番号順に結合することになるかと思いますが、
手作業で並べ替えるのではなく、なるべく省力化したいと思っています。

Access 自体は PDF ファイルを編集するためのソフトではありません。
 
PDF に関して出来ることと言えば、レポート等のオブジェクトの
印刷イメージを新規の PDF ファイルとして出力する機能を
呼び出すことぐらいでしょう。
 
例えば、Access のレポートを PDF 出力した結果として
作成されたのがその PDF ファイルであるならば、
そのレポートにおけるレコードの並べ替え順を
どうにかすれば済む話です。
 
そうではないのならば、別途 PDF ファイルを
編集出来るソフトを使用して、ページの入れ換え
作業を行なうしかないでしょう。

回答
投稿日時: 18/10/15 10:53:38
投稿者: Suzu

引用:
受注明細が一つのPDFファイルへ約200件(ページ)分入っているのですが、
作業効率向上のために並べ替えを行いたいです。
(並べ替え前)受注番号順 ⇒ (並べ替え後)ユニークな商品番号順
 
一度分解して商品番号順に結合

 
これは。。。
 
1PDFファイル内に、複数ページがあり、これが商品番号順に並んでいる。
これを、PDFファイルのページ順に並べなおしたい。
 
その為、PDFをページ毎に分割し、ある順序(今回が商品番号)で並べ替え
その順に PDFを1ファイルに纏め直したい
 
という事だと読めるのですが。。
 
 
引用:
テーブル)
並替前ファイル 並べ替え後ファイル
1       5
2       3
3       1
4       2
5       4

 
これは、、、??
並べ替え後では、元々 5ページ目、3ページ目、1ページ目・・・に有ったページを
 1ページ目、2ページ目、3ページ目 ・・・にしたい という事でしょうか?
 
一般的に、
1ファイル内に複数ページ存在するPDFを分割すると
 
.元ファイル名_0001.PDF
.元ファイル名_0002.PDF
.元ファイル名_0003.PDF
  :
の様に、
元ファイル名 + 数桁の桁合わせ数値 .PDF
と言うファイル名 でページ毎に保存されます。
 
逆に、複数PDF を 1ファイルに連結する場合、
その連結ツール側で並び順を指定するのが一般でしょう。
 
まあ、意図したページ順にするには、ファイル名に規則性を持たせ、
ファイル名の並び順を 希望の通りの並び順となる様に ファイル名を変更するのがてっとり早いでしょう。
 
となると、
 
1.PDFを予め分割しておく(手動)
2.分割済みファイルのファイル名を希望の並び順となる様にファイル名の変更(VBA)
3.ファイル名の並び順で、PDFを連結(手動)
 
が良いのでは?
 
どっちにしろ、ツールの仕様次第で、VBAから、そのツールを操作できない物もありますし
面倒な部分は、ファイル名の変更部分ですから、その部分のみを、VBAで操作できれば十分ですよね?
 
なのであれば 2. の部分のみをVBAで実行できれば良いのですよね?
 
1) 元ファイル名_0001.PDF の、「元ファイル名」部分を、
   テキストボックスやダイアログにて、指定しパスを取得。
 
2) 取得したパスのフォルダ中の 元ファイル名 + 「_000x.PDF」のファイルを Dir関数等で順次取得
   テーブルをレコードセットにて開き 並べ替前ファイル を 「_000x.PDF」のフォーマットで成形し
   Dir関数等で取得したファイル名と全レコードが全て合致するのか確認。
 
3) 合致確認できたら、RENAME 等により、 ファイル名の変更 を行う。
 
    例えば
      RENAME 並替前ファイル_0001.PDF 並替後ファイル_0005.PDF
      RENAME 並替前ファイル_0002.PDF 並替後ファイル_0003.PDF
                :
     の様に順次処理させれば良いですよね。
 
これができれば、 2. の部分の自動化ができますから、あとは手動で、3.を行えば良いですよね?

回答
投稿日時: 18/10/15 10:55:42
投稿者: Suzu

あーー
 
skさんの仰る様に、Accessに PDFの編集機能はありません。
 
PDFの編集ツールが別に必要です。

投稿日時: 18/10/18 00:31:37
投稿者: wand

skさん、Suzuさん
 
ご回答ありがとうございます。
Accessでは、わたしの要望するような機能は難しく(無く)、
Acrobatとかで 分割⇒並べ替え⇒合体 するのがシンプル
でよさそうですね。
 
ありがとうございました。