Office関連

PDFファイルのフィールドを読み取り専用にするVBAマクロ

「PDFのフィールドに値を入力した後、読み取り専用にするにはどうしたら良いか?」、という質問を頂きました。
フィールドを操作するマクロについては、何年か前に記事を書いています。

Acrobat JavaScriptのFieldオブジェクトには、そのものズバリの「readonly」プロパティが用意されているので、上記記事のコードのようにGetJSObjectメソッド経由で設定できます。

'Acrobat JavaScriptでフィールド操作
Public Sub Sample()
  Dim app As Object
  Dim avdoc As Object
  Const PDSaveFull = &H1
  Const PdfFilePath As String = "C:\Test\PDF\入力フォームサンプル.pdf" 'PDFファイルのパス
  
  Set app = CreateObject("AcroExch.App")
  Set avdoc = CreateObject("AcroExch.AVDoc")
  If avdoc.Open(PdfFilePath, "") = True Then
    app.Show 'Acrobat表示
    With avdoc.GetPDDoc.GetJSObject
      .getField("氏名").Value = "手巣都 花子"
      With .getField("年齢")
        .Value = "25"
        .ReadOnly = True '「年齢」フィールドだけ読み取り専用に設定
      End With
      .getField("連絡先").Value = "XXX-XXXX-XXXX"
    End With
    avdoc.GetPDDoc.Save PDSaveFull, "C:\Test\PDF\(入力済み)入力フォームサンプル.pdf" '別名保存
    avdoc.Close 1 '文書を保存せずに閉じる
    app.Hide: app.Exit
  End If
End Sub

あるいは下記のようにAFormAppオブジェクト経由で処理することもできます。

'AFormAppオブジェクトでフィールド操作
Public Sub Sample2()
  Dim app As Object
  Dim avdoc As Object
  Const PDSaveFull = &H1
  Const PdfFilePath As String = "C:\Test\PDF\入力フォームサンプル.pdf" 'PDFファイルのパス
  
  Set app = CreateObject("AcroExch.App")
  Set avdoc = CreateObject("AcroExch.AVDoc")
  If avdoc.Open(PdfFilePath, "") = True Then
    app.Show 'Acrobat表示
    With CreateObject("AFormAut.App") 'AFORMAUTLib.AFormApp
      With .Fields
        .Item("氏名").Value = "手巣都 花子"
        With .Item("年齢")
          .Value = "25"
          .IsReadOnly = True
        End With
        .Item("連絡先").Value = "XXX-XXXX-XXXX"
      End With
    End With
    avdoc.GetPDDoc.Save PDSaveFull, "C:\Test\PDF\(入力済み)入力フォームサンプル.pdf" '別名保存
    avdoc.Close 1 '文書を保存せずに閉じる
    app.Hide: app.Exit
  End If
End Sub

[Power Automate Desktop]オートメーション ブラウザーとは?前のページ

2021年9月の人気記事次のページ

関連記事

  1. Office関連

    [Word 2013]表形式のデータ入力にはコレが便利!?「コンテンツ繰り返しコントロール」の紹介

    Wordにはユーザー入力フォームを作るのに便利な機能「コンテンツ コン…

  2. Office関連

    VALUE DOMAINで管理しているドメインをOffice 365で使用する。

    Office 365をセットアップすると設定される初期ドメイン「onm…

  3. Office関連

    「ちゃうちゃう!」で2つの文書を比較するWordマクロ

    2014/08/10 追記:ちゃうちゃう!がバージョンアップされま…

  4. アイコン一覧

    Office 365アイコン(imageMso)一覧(F)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

  5. Excel

    既存の機能の代わりにマクロを実行する方法をまとめてみました。

    「既存の機能の代わりにマクロを実行する」の関連になりますが、Offic…

  6. Office関連

    Word 2013のアクセス キー一覧[PDF]

    前回の記事でWord 2013のアクセス キーをまとめたものを公開しま…

コメント

  • コメント (0)

  • トラックバックは利用できません。

  1. この記事へのコメントはありません。

Time limit is exhausted. Please reload CAPTCHA.

※本ページはプロモーションが含まれています。

Translate

最近の記事

アーカイブ

PAGE TOP