チョコミントアイス

マクロ初心者です。
A3縦のフォーマット用紙で集計をするのですが
データが50行目以下になるものはA4横に変更、51行目以上のものはA3そのままにしておくというマクロを教えてください。

質問者からの補足コメント

  • VBAも勉強を始めました。
    VBAも教えて頂ければ助かります。

      補足日時:2020/07/18 14:38

A 回答 (4件)

https://office-hack.com/excel/macro/
これを とにかくやってみることです。

で、
A3縦、A4横というのは、印刷、プリンターの設定です。
印刷用紙の設定と、大きさ(余白の取り方、拡大縮小)の設定も、マクロでできます。
なお、行の高さや列の幅の設定次第で、用紙に印刷される範囲は変わってしまいます。

印刷されたものがどのくらいの高さを必要とするかは、行数だけでは決まりません。
余白の取り方、行の高さなども考えないとならないです。
データが50行目以下、51行目以上で区分できるのか、単純には言えません。

With ActiveSheet.PageSetup
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA3
End With

With ActiveSheet.PageSetup
.Orientation = xlLandscape
.PaperSize = xlPaperA4
End With

そのシートで何行目まで使っているのかは、
 owari = ActiveSheet.Cells.Find("*", , xlFormulas, , xlByRows, xlPrevious).Row

50行目を境にどうするか、マクロ、VBAを覚えながらやってください。
    • good
    • 0

No1です。



VBAで組もうと思えば、すべての条件が明確でなければなりません。

入力データがどういうファイル名なのか、どういう項目があるのか
出力データがどういうファイル名なのか、どういう項目があるのか
入力データの項目と出力データの項目はどういう関連性があるのか
入力データでどのようなものが出力データに出力するのか
等々
全ての項目がわかっていなければ、VBAなんて書けません。

ただ単に開いたシートが50行以上かどうかで判断するのならば
No2様がおっしゃっているように改ページプレビュー等で判断する方が
てっとり早いです。

もしVBAで組みたければ、自分で一度組んでみて、うまく動かない場合は
そのソースを張り付けられてお尋ねになれば良いと思います。
    • good
    • 0

とりあえず、ユーザー設定のビューで対応されては?


データが50行目までかどうかは見ればわかりますよね?
    • good
    • 0

単純なマクロでは無理でしょう。


VBAで組まなければなりません。

(1)A3とA4横の出力用のシートをあらかじめ用意しておく
(2)印字前にデータをカウントして、50件以下だったら出力先をA4横シート、
   51件以上だったら出力先A3シートに転記する
(3)データの転記が終わったらシートを印刷する
   
とすれば良いと思いますが……
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!