[[20170817150509]] 『フォルダ内のすべてのpdfファイルの文書プロパテメx(rieko) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『フォルダ内のすべてのpdfファイルの文書プロパティをExcelシートのデータを参照し一括書き換え』(rieko)

初心者です。
下記のコードを使用して、フォルダ内のPDFファイル「文書のプロパティ」の「タイトル」「サブタイトル」「キーワード」へ
(春、季節、さくら)を書き込むことができました。

やりたいことは、
下記シートのファイル名と一致するB、C、D列のデータをフォルダ内のPDFファイルそれぞれの文書プロパティへ書き込みたいです。
ファイルが1000個ほどあり、一括で書き込めるようにしたいです。よろしくお願いいたします。

(シート1)
A B C D
ファイル名   本タイトル   サブタイトル   キーワード
春.pdf      春      季節      さくら
夏.pdf      夏      季節      暑い
りんご.pdf    りんご    果物      おいしい
・         ・      ・      ・
・         ・      ・      ・

Sub フォルダ内PDFのタイトル作成者などを書き換える()

'カレントドライブ・フォルダを変更
ChDrive ActiveWorkbook.Path
ChDir ActiveWorkbook.Path

myPath = ActiveWorkbook.Path & "\"
myFname = Dir(myPath & "*.pdf")

    Do While myFname <> ""

        Set qq = CreateObject("AcroExch.PDDoc")
            b = qq.Open(myPath & myFname)
            b = qq.SetInfo("Title", Range("B2"))
            b = qq.SetInfo("Subject", Range("C2"))
            b = qq.SetInfo("Keywords", Range("D3"))

            '... 33 = PDSaveFull (1) OR PDSaveCollectGarbage (32)
            b = qq.Save(33, myPath & myFname)
            b = qq.Close

        myFname = Dir()
    Loop

MsgBox "終了しました"

End Sub

< 使用 Excel:unknown、使用 OS:Windows10 >


最近は製品版のAcrobatをインストールしていないので、ちょっと試せません。なので、案だけ。

まず、CreateObject("Scripting.Dictionary") を使って、辞書オブジェクトを宣言します。そして、A列のファイル名をキーに、行位置をアイテムとして、辞書追加しておきます。

あとは、辞書にmyFnameがあるならば、その値の示す行のセル情報を使い、辞書に無ければ読み飛ばすと良いでしょう。
(???) 2017/08/17(木) 16:11


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.