Excel (VBA)

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

 
(Windows 10 Pro : Excel 2013)
VBでAcrobatを操作しPDFのプロパティを制御するとき
投稿日時: 21/10/06 20:14:34
投稿者: QooApp

いつもお世話になっております。
よろしくお願いいたします。
 
Acrobatを制御してPDFのプロパティ設定項目にある
・タイトル
・作成者
・サブタイトル
・キーワード
等を設定しています。
 

SetProperty(ThisWorkbook.Path & "\pdfFile.pdf")

Sub SetProperty(SetFileFullPath As String)
    
    Dim qq As Variant
    Dim b As Variant
        
    Set qq = CreateObject("AcroExch.PDDoc")
    b = qq.Open(SetFileFullPath)
    b = qq.SetInfo("Title", Range("B2").Value)
    b = qq.SetInfo("Author", Range("B3").Value)
    b = qq.SetInfo("Subject", Range("B4").Value)
    b = qq.SetInfo("Keywords", Range("B5").Value)
    b = qq.SetPageMode(3) 'しおりパネルとページ
    
    '... 33 = PDSaveFull (1) OR PDSaveCollectGarbage (32)
    b = qq.Save(33, SetFileFullPath)
    b = qq.Close
    
End Sub

 
キーワードの部分でRange("B5")のセルのテキストがセル内改行されている場合、
普通に張り付けているだけなので文字列の開始と終了文字の前後にダブルコーテーションが付与されます。
 
「ダブルコーテーションを無しの状態かつ改行あり」でキーワード部分に入力する場合、思いつくパターンで削除できませんでした。
 
▼試した作業
Replace( RANGE() , VbLf,"") ※1行にすればこれで表示に成功した
Replace( RANGE() , """","") ※効果無し
Replace( Replace( RANGE() , VbLf,"改行コードの代替文字列") , "改行コードの代替文字列",VbCrlf)
※CrLf Cr Lf どの改行コードでも特に差異はありませんでした。
 
参照設定でAdobe Acrobat 9.0 Type Library(Acrobat Pro 9)を使用しています。
Acrobat6以降なら特に差異はない設定です。

投稿日時: 21/10/06 20:19:22
投稿者: QooApp

b = qq.SetInfo("Keywords", Range("B5").Value)
 

 
 b = qq.SetInfo("Keywords", Range("B5"))
 
にしたら入力できました。
 
お騒がせしました。