投稿者 るきお  (社会人) 投稿日時 2022/2/19 22:28:51
>参考にしたページでは、PowerShellを使って「用紙サイズ」や「向き」の変更もできているようなので
何か方法はあるのかな、と思いました
言われてみればそうですね。

WMIでやってみました。このプログラムを実行しても用紙サイズは変わりませんでした。
'要 Option Strict Off 
Using printer As New Management.ManagementObject("Win32_Printer.DeviceID=""Microsoft Print to PDF""")
    printer.Get() '一応Getしてみても特に変わらず 

    Debug.WriteLine("参考:このプリンターで使用できるプロパティの一覧")
    For Each prop In printer.Properties
        Debug.WriteLine($"{prop.Name} = {prop.Value}")
    Next

    printer("DefaultPaperType") = "A5"
    printer.Put()
End Using


ただ、私の場合、まこさんが提示されたサイトのPowerShellでも用紙サイズは変わらなかったです。エラーにもなりません。
だから、ひょっとするとまこさんの環境ではうまくいくのかもしれませんね。
なお、上述のプログラムもPowerShellも実行するには「管理者として実行」する必要がありました。

参考:別バージョン
こちらも結果は変わらずです。
'要 Option Strict Off 
Using mc As New Management.ManagementClass("Win32_Printer")
    Using printers As System.Management.ManagementObjectCollection = mc.GetInstances()

        Dim printer As Management.ManagementObject = Nothing

        For Each p In printers
            If p("Name") = "Microsoft Print to PDF" Then
                printer = p
                Exit For
            End If
        Next

        Debug.WriteLine("参考:このプリンターで使用できるプロパティの一覧")
        For Each prop In printer.Properties
            Debug.WriteLine($"{prop.Name} = {prop.Value}")
        Next

        printer("DefaultPaperType") = "A5"

        printer.Put()
        printer.Dispose()

    End Using
End Using