投稿者 DAI  (社会人) 投稿日時 2015/7/9 14:47:45
魔界の仮面弁士 さん
shu さん

貴重なご意見有難うございます。

現在、shuさんが言われている
API宣言をなくし自作モジュールにWritePrinterを作成して対応しています。

Public Declare Function WritePrinter Lib "winspool.drv" (ByVal _
    hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, _
    pcWritten As Long) As Long

             ↓

Public Function WritePrinter(ByVal hPrinter As Long, ByVal pBuf As String, _
                                       ByVal cdBuf As Long, pcWritten As Long) As Long
    Printer.Print pBuf
End Function

上記の対応をしたことによって帳票は作成出来ているのですが、
やはり縦倍角・横倍角に・・・。
(プログラムに点在する制御コードなどの削除も同時に行っています)


今回、縦倍角・横倍角対応のイメージを下記に記述します。

     コード1    コード2        コード3
                    YYYYY
     XXXXX    YYYYY    ZZZZZ
                       ↑
 「Y」を縦倍角で印字したい
  一段目の「Y」と二段めの「Y」を合わせて一文字として印字、
  今回ですと縦倍角の「Y」が5文字分印字されます。
  (イメージが分かりづらくて申し訳ありません)

お二方の意見を参考にし、色々とテストしてみたいと思います。


最後に質問に対する回答をさせて頂きます。

>たとえば Excel から DocuWorks Printer に印刷した場合も、
>同じようなエラーになるのでしょうか? 

普通にExcel等から印刷しても問題なく出力されます。
また、上記の自作モジュールからの印刷でも問題なく出力させれます。