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

    文書が互換モードかどうかを判定するWordマクロ

    古いバージョンのWordで作成された文書を開くと、タイトル バーに「互…

  2. Office関連

    [VBA]ユーザーフォームでBootstrapを使う。

    MSDNフォーラムにあった質問「VBAでのフォーム オブジェクトを立体…

  3. Office関連

    Office 2010のオブジェクトリスト

    オブジェクト ブラウザーから取得できる、各Office 2010アプリ…

  4. Office関連

    名前空間を指定してXPathで要素を取得するVBAマクロ

    Tech Communityに、“XPathで名前空間プレフィックス付…

  5. Office アドイン

    [Office用アプリ]アプリ開発コンテストの案内

    2013/9/9 追記:コンテストの受賞者が発表されました。おかげ…

  6. アイコン一覧

    Office 365アイコン(imageMso)一覧(E)

    Office 365のデスクトップ版Officeアプリケーション(Wo…

コメント

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

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

Time limit is exhausted. Please reload CAPTCHA.

Translate

Chinese (Simplified)Chinese (Traditional)EnglishFrenchGermanJapaneseKoreanRussianSpanish

最近の記事

アーカイブ

PAGE TOP