OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

フォームとその上にあるMSFlexグリッドのハードコピー方法

  • すぐに回答を!
  • 質問No.106582
  • 閲覧数117
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 94% (86/91)

フォームとそのフォーム上にあるMSFlexグリッドの
ハードコピーを、やはりそのフォーム上に設けたコマンド
ボタンのクリック一発で行えるようにしたいのです。

下記の構文で、PrintFormメソッドを使ってやってみましたが、
MSFlexグリッドの部分が真っ黒に印刷されてしまいます。

With Printer
.PaperSize = vbPRPSA4
.Orientation = vbPRORLandscape
End With

Form_Ichiran.PrintForm
 
どなたかご存知の方、よろしくお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

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

  • 回答No.1
レベル12

ベストアンサー率 65% (276/422)

どもども田吾作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を設定してあげると、間延びした印刷にはならないと思います。

でわでわ
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.2
レベル12

ベストアンサー率 65% (276/422)

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

返事が無いところを見ると、解決したのかな?
それともわからなくて困ってるのかな?
もしそうだとしたら、遠慮なく質問してくださいね。
お礼コメント
72ric4001fg

お礼率 94% (86/91)

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

おかげさまで今日の夜には帰れそうです。
どうもありがとうございました。
また、なにかあった時にはよろしく御教授ください。
投稿日時 - 2001-07-25 16:35:37


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ