Office関連

[Wordマクロ]PrintOutメソッド実行時に「型が一致しません」との実行時エラーが発生する。

Wordマクロで文書を印刷するときはPrintOutメソッドをよく使います。
ページ範囲を指定して印刷を行う、下記のようなコードは一見問題無いように見えますが、これを実行すると「実行時エラー ’13’:型が一致しません。」とのエラーが発生します。

Option Explicit

Public Sub Sample()
  ActiveDocument.PrintOut Range:=wdPrintFromTo, From:=2, To:=3
End Sub

Word_PrintOut_01_01

どこが引っ掛かっているのかというと、「wdPrintFromTo」のときに指定する「From」と「To」。
実は「From」と「To」は文字列として指定しないと上記エラーが発生します。
これを解決するためには、下記のように「」(ダブルクォーテーション)で囲むかCStr関数で文字列型にする必要があります。

Option Explicit

Public Sub Sample()
  ActiveDocument.PrintOut Range:=wdPrintFromTo, From:="2", To:="3"
End Sub

Public Sub Sample2()
  ActiveDocument.PrintOut Range:=wdPrintFromTo, From:=CStr(2), To:=CStr(3)
End Sub

思いがけずにハマってしまいそうだったので、今回記事として残しておくことにしました。

今回の件とは関係ないですが、Wordの印刷については下記のような情報もありました。

・Word 2013、Word 2010、Word 2007、および Word 2003 で複数のセクションから構成されている文書のページの範囲を印刷する方法
http://support.microsoft.com/kb/826218/ja

普段セクションを指定して印刷する機会など無いので知りませんでしたが、「p1s1-p2s2」のような感じでセクション指定もできるのですね。
一つ勉強になりました。

2014年1月の人気記事前のページ

実行中のアプリケーション一覧を出力するVBScript次のページ

関連記事

  1. Office関連

    図形の結合を行うPowerPoint マクロ(ExecuteMsoメソッド編)

    Excel MVPの伊藤さんのブログで、PowerPointの「図形の…

  2. Office関連

    PDFを分割するVBAマクロ

    「VBA PDF 分割」といったキーワード検索でのアクセスがありました…

  3. Office関連

    Office 365 APIをVBAから呼び出す(1)

    2015年4月に公開されたOffice Teamのブログ記事「Toda…

  4. アイコン一覧

    Office 2013 アイコン一覧(I)

    ・Office 2013 アイコン一覧 NUM…

  5. Windows 10

    起動中のMicrosoft EdgeからタイトルとURLを取得するVBAマクロ(DOM編)

    前回の記事で、UI Automationを使って起動中のMicroso…

  6. Office関連

    PowerShellからNetOfficeを使ってExcelを操作する方法

    先日、Excel MVPの伊藤さんがPowerShellからExcel…

コメント

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

  1. この記事へのトラックバックはありません。

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP