メモ
その場しのぎで紙面上の文書を平行移動させて余白を調整する場合に便利だと思います。
使い捨てスクリプト
- PDFを開いたウィンドウを表示させた状態でマクロを実行してください
- 図形に「マクロの登録」すると効率的に実行できます
' Excel 2019, Acrobat Standard DC (2022年3月頃), Windows 11 ' 参照設定 ' Acrobat (Adobe Acrobat 10.0 Type Library) Option Explicit Public Sub MoveCropBox(ByVal moveXmm As Double, ByVal moveYmm As Double) #Const DEBUG_ = False #If DEBUG_ Then Dim avApp As Acrobat.AcroApp Dim pdDoc As Acrobat.AcroPDDoc #Else Dim avApp As Object Dim pdDoc As Object #End If Dim pageNum As Long Dim rBox() As Variant On Error GoTo ErrorHandler Set avApp = VBA.Interaction.CreateObject(Class:="AcroExch.App") Set pdDoc = avApp.GetActiveDoc().GetPDDoc() pageNum = pdDoc.OpenAVDoc("").GetAVPageView().GetPageNum() rBox = pdDoc.GetJSObject().getPageBox("Crop", pageNum) rBox(0) = rBox(0) + moveXmm * 72 / 25.4 rBox(3) = rBox(3) + moveYmm * 72 / 25.4 rBox(2) = rBox(2) + moveXmm * 72 / 25.4 rBox(1) = rBox(1) + moveYmm * 72 / 25.4 pdDoc.GetJSObject().setPageBoxes "Crop", pageNum, pageNum, rBox ErrorHandler: Set pdDoc = Nothing Set avApp = Nothing Debug.Print VBA.Conversion.Error(VBA.Information.Err.Number) End Sub Public Sub 移動_上方向5mm() MoveCropBox moveXmm:=0, moveYmm:=-5 End Sub Public Sub 移動_下方向5mm() MoveCropBox moveXmm:=0, moveYmm:=5 End Sub Public Sub 移動_左方向5mm() MoveCropBox moveXmm:=5, moveYmm:=0 End Sub Public Sub 移動_右方向5mm() MoveCropBox moveXmm:=-5, moveYmm:=0 End Sub