VBからEXCELの1ページの印刷範囲を設定するには>

解決


おがわ  2007-01-09 22:10:57  No: 134794

VB6で開発しています。

VB6でエクセルの操作をしています。

できたEXCELファイルの1ページの印刷範囲を
(プリンターでA41枚に印刷する印刷範囲、改ページプレビューで設定する機能)
A1〜I40という風にしたいのですが
方法はありますでしょうか?

宜しくお願いいたします。


特攻隊長まるるう  2007-01-09 23:19:34  No: 134795

Excel 上でのほとんどの操作はマクロを記録する事ができます。
記録されたマクロを[Excel VBA]のヘルプで確認してください。

PageSetup オブジェクトを設定することになると思います。


おがわ  2007-01-10 06:33:23  No: 134796

エクセルのマクロではこのように表示されました。

ActiveSheet.VPageBreaks(1).DragOff direction:=xlToRight, RegionIndex:=1
ActiveSheet.HPageBreaks(1).DragOff direction:=xlDown, RegionIndex:=1

しかし、VB6にはActiveSheetがありません。

そこでこのように書きました。

xlsSheet.VPageBreaks(1).DragOff direction:=xlToRight, RegionIndex:=1
xlsSheet.HPageBreaks(1).DragOff direction:=xlDown, RegionIndex:=1

xlsSheetはVBで開いているシート名です。

このコードを書くと今までできていたエクセルファイルができなくなりました。
エラーも出ません。

どうしてしまったのでしょう?

宜しくお願いいたします。


特攻隊長まるるう  2007-01-10 19:15:05  No: 134797

エラーで落ちてるだけでしょう。

VB6.0のコードでエラー処理を入れてますか?
入れてないなら、エクセル側にエラー表示されて
いるのでは?

> エクセルファイルができなくなりました。
その時点でエクセルを表示して無いなら、
表示してから動作確認するようにしてください。

 # DragOff メソッドを使う必要があるのでしょうか?
 # [Excel VBA]のヘルプで記録したマクロを確認
 # してください。自分がどんな動作を実行しているか
 # 把握してからデバッグしてください。


おがわ  2007-01-10 22:47:23  No: 134798

VB6.0でエラー処理を入れていました。
エラー処理をはずしました。

そこでさらに
PageSetupにFitToPagesTallとFitToPageWideで設定できることがわかりました。

そこでコードをこう書きました。

xlsSheet.PageSetup.FitToPagesTall = True

これで実行すると
PageSetupクラスのFitToPageWideのプロパティが設定できません。
と帰ってきてしまいます。

他のプロパティ、例えばLeftFooterなどは設定できるようです。

たびたびで申し訳ありませんがどのように設定すれば良いのでしょうか?

宜しくお願いいたします。


おがわ  2007-01-10 22:57:40  No: 134799

以下で解決できました。 

   xlsSheet.PageSetup.Zoom = False
    xlsSheet.PageSetup.FitToPagesTall = 1
    xlsSheet.PageSetup.FitToPagesWide = 1

特攻隊長まるるうさんありがとうございました。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加