VB6で開発しています。
VB6でエクセルの操作をしています。
できたEXCELファイルの1ページの印刷範囲を
(プリンターでA41枚に印刷する印刷範囲、改ページプレビューで設定する機能)
A1〜I40という風にしたいのですが
方法はありますでしょうか?
宜しくお願いいたします。
Excel 上でのほとんどの操作はマクロを記録する事ができます。
記録されたマクロを[Excel VBA]のヘルプで確認してください。
PageSetup オブジェクトを設定することになると思います。
エクセルのマクロではこのように表示されました。
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で開いているシート名です。
このコードを書くと今までできていたエクセルファイルができなくなりました。
エラーも出ません。
どうしてしまったのでしょう?
宜しくお願いいたします。
エラーで落ちてるだけでしょう。
VB6.0のコードでエラー処理を入れてますか?
入れてないなら、エクセル側にエラー表示されて
いるのでは?
> エクセルファイルができなくなりました。
その時点でエクセルを表示して無いなら、
表示してから動作確認するようにしてください。
# DragOff メソッドを使う必要があるのでしょうか?
# [Excel VBA]のヘルプで記録したマクロを確認
# してください。自分がどんな動作を実行しているか
# 把握してからデバッグしてください。
VB6.0でエラー処理を入れていました。
エラー処理をはずしました。
そこでさらに
PageSetupにFitToPagesTallとFitToPageWideで設定できることがわかりました。
そこでコードをこう書きました。
xlsSheet.PageSetup.FitToPagesTall = True
これで実行すると
PageSetupクラスのFitToPageWideのプロパティが設定できません。
と帰ってきてしまいます。
他のプロパティ、例えばLeftFooterなどは設定できるようです。
たびたびで申し訳ありませんがどのように設定すれば良いのでしょうか?
宜しくお願いいたします。
以下で解決できました。
xlsSheet.PageSetup.Zoom = False
xlsSheet.PageSetup.FitToPagesTall = 1
xlsSheet.PageSetup.FitToPagesWide = 1
特攻隊長まるるうさんありがとうございました。
ツイート | ![]() |