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関連

    ディスプレイのサイズを取得するVBAマクロ

    「VBA ディスプレイ 幅 高さ」といったキーワード検索でのアクセスが…

  2. Office関連

    【2018年9月版】Microsoft Office関連の公式リンクまとめ

    Ignite 2018やOffice 2019のリリースがあり、Off…

  3. Office関連

    セルの行数をカウントするWordマクロ

    「ソースコードを番号行付きのテーブルに変換するWordマクロ」を実行し…

  4. Office アドイン

    [Office用アプリ]アプリを削除する。

    「JavaScriptで作成した作業ウィンドウアプリを検証してみる。」…

  5. Office関連

    [Excel Services ECMAScript]jPrintAreaで埋め込んだブック部分のみ…

    jQuery + jPrintAreaを利用して、埋め込んだExcel…

  6. Office関連

    [Office VBA]ADOでSharePointリストに接続する方法

    先日Twitterで @blacklist_ryu さんが下記ツイート…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

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

Translate

最近の記事

アーカイブ

PAGE TOP