• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:フォームとその上にあるMSFlexグリッドのハードコピー方法)

フォームとMSFlexグリッドのハードコピー方法

このQ&Aのポイント
  • フォームとそのフォーム上にあるMSFlexグリッドのハードコピーを、コマンドボタンのクリック一発で行える方法を教えてください。
  • PrintFormメソッドを使ってフォームとMSFlexグリッドの内容を印刷しようとしていますが、MSFlexグリッドの部分が真っ黒に印刷されてしまいます。
  • 解決方法をご存知の方は、ぜひ教えてください。お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

どもども田吾作7です。 どうやらOCXのコントロール類はPrintFormの対象になってくれないようですね。 実験して初めて知りました。(-ロ-;グハッ ですので、フォームのデバイスコンテキストを使用したら、うまくいったみたいなので、ご報告いたします。 With Me 'フォームのスケールモードをピクセルにします。 .ScaleMode = vbPixels 'Printerオブジェクトのスケールをピクセルにします。 Printer.ScaleMode = vbPixels 'Printerオブジェクトの出力を促します。 Printer.Print 'Printerオブジェクトへフォームを描画します。 Call StretchBlt(Printer.hdc, 0, 0, Printer.ScaleWidth, Printer.ScaleHeight, .hdc, 0, 0, .ScaleWidth, .ScaleHeight, vbSrcCopy) 'Printer オブジェクトに送っているドキュメントを終了し、印刷デバイスやスプーラに出力処理の制御を渡します。 Printer.EndDoc End With ってな感じでしょうか? あらかじめフォームをピクセルにしておいたら一行省略できると思います。 StretchBltで、Printオブジェクトのサイズに、フォームを描画しているので、あらかじめPrinterオブジェクトのWidth/Heightを設定してあげると、間延びした印刷にはならないと思います。 でわでわ

その他の回答 (1)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

再度、田吾作7です。 返事が無いところを見ると、解決したのかな? それともわからなくて困ってるのかな? もしそうだとしたら、遠慮なく質問してくださいね。

72ric4001fg
質問者

お礼

お礼が大変に遅れてしまいました。 本当に助かりました。どうもありがとうございます。 客先に10日以上も詰めて、火を噴いたプロジェクトの 納品作業をやっており、まったく時間がありませんでした。 おかげさまで今日の夜には帰れそうです。 どうもありがとうございました。 また、なにかあった時にはよろしく御教授ください。

関連するQ&A