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 Customer Preview)

    Word 2013 CP版に組み込まれている「コマンドマクロ」のコマン…

  2. Office関連

    Word 2013の「個人用テンプレート」はどこ?

    Word 2010では、から「個人用テンプレート」(カスタム テンプレ…

  3. Office関連

    GetSpellingSuggestionsメソッドで文法上の誤りの修正候補は取得できない?

    前回と前々回の記事でスペルチェック、文章校正に関するWordマクロを扱…

  4. Office関連

    表示モードを変更するPowerPointマクロ

    PowerPointには様々な表示モードがありますが、私のお気に入りは…

  5. Excel

    Google TTSで文字列を読み上げるマクロ

    2012/02/09 追記:関連記事・Google翻訳…

  6. Office関連

    OfficeのコマンドID(コントロールID)リストがGitHubで公開されました。

    前回の記事でも触れていますが、メインストリームサポート期間内のOffi…

コメント

  • コメント (0)

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP