- ベストアンサー
Excel(VBA)で専用用紙に印刷
初歩的な質問で恐縮です。 今、ExcelのVBAである業務日報を作成しているのですが、印刷はある決まったフォーマットの用紙にデータだけを印字したいのです。 そうなると、座標を最小単位で指定する必要がでてくるわけですが、これをどうやればいいのかが分かりません。 ワークシートでセルのサイズを調整してやればいいのでしょうか? あるいは、VBAで専用フォームを作ればいいのでしょうか? 後者の場合だと座標指定は1/72インチ単位でかなりのズレが出てくると思うのですが、これ以下のサイズの指定はできるのでしょうか? 以上、よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 おそらくは、VBAだけでは無理だと思います。 >座標指定は1/72インチ単位でかなりのズレが出てくる いえ、それは、昔の話なのです。「1/72 インチ」ではなくて、もう、そういうプリンタとの連携がなくなってしまったのです。インチものさしも、今は、使えなくなってしまいました。 ワークシートを画像にするという方法もあるかと思います。画像にして、そのズレを、VBAで(実測して割合を出した数値を定数として代入し)補正してあげれば、かなりの精度にはなるはずです。しかし、既存のフォーマット(書式)に収めるというのは、ほとんど不可能です。 以下で示すようなユーティリティを用いて、印刷するという方法が、今は一般的のようです。なぜ、Excelでは出来ないか、というのは、セルには論理的な高さや幅というものがあって、それを、プリンタ・ドライバが持っている物理的な長さ・幅に丸められるのだろうと考えています。 http://oshiete1.goo.ne.jp/kotaeru.php3?qid=2646711
その他の回答 (2)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。#2 の Wendy02です。 >印刷支援ソフト このことには、あえて触れなかったのですが、ロジックとしては、 #2で説明した #VBAで(実測して割合を出した数値を定数として代入し)補正してあげれば、かなりの精度にはなるはずです。 私自身も、そのマクロは研究してみて、そういう結論的なものを出したのです。そのマクロ自体をお試しになってみればよいと思いますが、実際の、そのマクロの有用性は、作者さんには申し訳ないのですが、別売のユーティリティソフトと比較して、高くないように思っています。
お礼
度々ありがとうございました。 ご紹介いただいた方法は一度やっておけばずっと使えるので、一度やってみようと思います。
- zap35
- ベストアンサー率44% (1383/3079)
>ワークシートでセルのサイズを調整してやればいいのでしょうか? が簡単だと思います。シェイプを貼り付けてそこに値を書き込むマクロを作成する方法はありますが、あまり現実的ではないでしょう。 本当ならACCESSを使用するべきだと思います。ACCESSならば印刷するフィールド単位に位置を設定できます。でもEXCELだと行、列の升目でしかサイズが調節できないので、どうしてもACCESSより自由度が低くなります。
お礼
ご回答いただき、ありがとうございます。 なるほど、かねてからExcelは印刷に弱いとは聞いていましたが、そもそも印刷という作業については最低限の機能しかないと考えた方がよさそうですね。 Accessとなると改めて購入する必要もあり、やや敷居が高いのですが、この際にOpenOfficeでも始めようかと思っています。
補足
早速のご回答、ありがとうございます。 「現実的ではない」ということは、「かなりの手間がかかる」ということでしょうか? しかしながら私には結構分かりやすい方法だと思えますので、一度やってみようかとも思っています。 ACCESSは…購入予定がありません。
補足
ご回答いただき、ありがとうございます。 >もう、そういうプリンタとの連携がなくなってしまったのです なんと!これはショック。 ということは、 http://hp.vector.co.jp/authors/VA016119/sizemm.html ここにあるような印刷支援ソフトも使えないということなのでしょうか? 私が持っているのはExcel2000なのですが、それでもダメなのでしょうか?