• 締切済み

文字が出ているところのみ印刷したい。

excel VBAの質問です。 列がA~BR、行が500行のシートがありまして、A~Gまでが1つの種類(合計10種類)で 分かれてるシートがあります。プリント範囲が1ページA6:G50(A1:A5は行のタイトル) 2ページ目がA51:G45と下に下がってから、又となりのH6:N50のページに移る感じで プリントしています。下に下がってから又上横にずれてという感じに10種類の300ページ を手動でプリントしていますが、空白のページがどうしてもプリントされてしまい、文字が入っているページのみ印刷したいのですが、どの様にVBAで記述したらよろしいのでしょうか? また、フッターでページ総数を入れていますがそれも空白のページが出た時は自動的に減らしたいです。 よろしくお願い致します。

  • masm
  • お礼率50% (1/2)

みんなの回答

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

水平および垂直改ページを事前に設置しておく必要があります。 それと >文字が入っているページのみ印刷したい 印刷したくない範囲は,事前にキチンと「文字が入っていない」状態にしておく必要があります。 sub macro1()  dim r as long, c as long  dim s as string  for c = 1 to 70 step 7  for r = 6 to 500 step 45   if application.counta(cells(r, c).resize(45,7)) > 0 then   s = s & "," & cells(r,c).resize(45,7).address(false,false)   end if  next r  next c  activesheet.pagesetup.printarea = mid(s, 2, len(s))  activesheet.pagesetup.order = xldownthenover  ’念のため  activesheet.printout end sub

masm
質問者

お礼

keithinさん 早速ご教授いただきましてありがとうございます。 実行しましたところ、きちんと出来ました。 ありがとうございました。

関連するQ&A

  • エクセル 印刷時の固定印刷について・・・

    いつも皆様にはお世話になっております ワークシート印刷時にファイル→ページ設定→シートの部分で、行タイトルにてヘッダーのようにまたがるページに決まった行を印字させることは出来ますが、これを上下に上下別々な行を固定をかけたいのです。 行タイトルとフッターもしくはVBAをうまく使い印刷することは可能でしょうか?

  • VBA 印刷について(空白ページを印刷しない)

    エクセル VBAで空白のシート及び空白ページを印刷しない方法を教えてください。 見積明細シートが明細1、明細2と9まであります。 各シート見積もりの内容によりページ数が異なり 入力の無いシートもあります(明細3以降入力無し等) 又、2行目まではタイトル行のためシートに最初から入力済みです。 縦横とも罫線を引いてあります。 A    B   C   D    E   F 1 項目  適用  単価  単位  金額   備考← タイトル行 2                        ← タイトル行 3 ここから入力 4 5 ↓ 1ページ23行 例えば、明細1 24行まで入力した場合、2ページめの最後(44行目まで) 印刷したい。 明細2以降 タイトル行以外にデーターが有れば印刷、なければ印刷しない。 様な感じです。 最終行まで印刷するところまでは自力でたどり着いたのですが、それだと最終行よりしたの罫線が印刷されなくて困っています どなたかご教示願います

  • マクロで変化する印刷範囲を印刷したい

    教えて下さい!エクセルでデーターが入っている 例えば A1:K25とA27:K40 この領域には別のデーターが入ってます 列数は変更ありませんが行数はシートにより違います 毎回印刷範囲を指定しているので面倒くさいのが現状です どなたかワンプッシュで2つのデーターを入れてある領域を印刷出来るマクロを教えて下さい 上と下のデーターの領域は必ず1~3マスは行が空いてます 列は決まっているのでA1~A●←最終行まで A●下行の空白最後尾+1=A■ A■~A■最終行 この二つの領域印刷がしたいです マクロの記録でやってみましたが行が特定の為違うシートでは使えず 又、指定したシートも行を変更してしまうので印刷範囲指定した方が早いという結果に どなたかお力をお貸しください 宜しくお願いします

  • EXCELで表紙のフッターに頁数を入れず、2枚目から頁数を入れる

    1枚のSHEETに下方向に向かってA4サイズのデーターが30枚以上続いていて、1枚目は表紙扱いでフッターに頁数を入れず、2枚目からフッターに2と入れるようにする方法を「ページ設定」→「ヘッダー、フッター」→「フッターの編集」からできますか?WORDではありますがEXCELだと見当たりません。 ただプリントするだけなら2枚目以降をプリントしてから、フッターを消して1枚目をプリントすればいいのですが、EXCELごとメールで送り、受け手が更に頁数を増やし、その後にプリントするので、プリント方法の指示をするのではなくて、設定を入れて誰がプリントしても1枚目にはページ数が入らず、2枚から2・3・4・・・とふれるようにしておきたいのです。 どなたかいい方法がありましたら、教えて下さい。

  • Excelで印刷するときのフッターの位置

    Excel2000でレコードを印刷するときに、 タイトル行と、フッターを指定しました。 印刷するときにレコードがページいっぱいにあるときは いいのですが、レコードが少ないページだと フッターとレコードの間に空白ができてしまいます。 あたりまえなのですが、この空白を空けないようにするにはどうしたらいいでしょうか? 最後のページだけ印刷するときにフッターの位置を上に詰めてやっているのですが、そうすると、他のページまでが印刷範囲がずれてしまうのです・・・。

  • 複数のエクセルファイルを条件付きで一つまとめたい

     最初に誤ったカテゴリーに登録してしまったため、再度、同じ内容をこちらに記載させて頂きますことお許し下さい。 いくつかのエクセルファイルがあり、各々のファイルには同様のフォームで Sheet1とSheet2があります。それぞれのファイルのSheet1に入力されているデータを新しい別ファイルのSheet1にまとめたいのです。その際に最初のファイルAの見出しだけを取り込む、各ファイルのSheet1のA列にはNOを付番してありますが、B列以降は空白になっている行もありこの分については行を詰めて取り込みたいのですが、どのようにしたらよいのかわかりません。毎日、更新する必要があるのできればVBAでと思っておりますが、初心者ながらいろいろと調べてみましたが、なかなかうまくいきません。どなたかお教え下さい。  ファイルAのSheet1   A     B     C    D    E........ W 1   見出し 2  1    5/12  山田   \1000 ........... ............   3   2    (空白) 4   3      6/30   鈴木   \2400  ........... ............. 5  4     7/31  田中   \3500  ........... ............. 6   5    (空白)   上記のような感じです。どなたかお助け下さい。 

  • エクセル印刷で上下の結合セルが別ページにならない方法?

    エクセル2000です。 一枚のシートに表が複数あります。 表中のセルはすべて数式が入っています。 A列は続き番号がふってあります。 B列~E列は上下のセルが結合しています。(2行分) F列は結合していません。 G列は上下の結合あります。(2行分) このような様式の表が、同一シートに1行あけて上から下へ続いています。 しかも、計算結果により表中の行が空白になる場合がよくあります。 その場合、は表中の空白行は非表示になるようにマクロで設定しています。 このシートを印刷した場合、2行を上下で結合したセルが、別ページに分かれてしまうことがよくあります。計算結果で表示がかわるので改ページを事前に入れておけません。 結合セルがページで分割されないようにするにはどうしたらよいでしょうか?

  • マクロで印刷頁を設定する方法はありますか?

    エクセルのワークシートに【印刷シート(全5頁)】があるのですが、 この印刷シートの各頁の指定行をみて、空白でなければ該当頁を印刷するマクロは存在するのでしょうか? 具体的に申し上げれば以下のようになります。  1頁目→必ず印刷  2頁目→セルA20が空白でなければ1・2頁を印刷  3頁目→セルA40が空白でなければ1~3頁を印刷  4頁目→セルA60が空白でなければ1~4頁を印刷  5頁目→セルA80が空白でなければ全頁印刷 条件分岐IF THEN を使うのかとは思うのですが、複雑になると 全くマクロが組めないぐらい初心者です。 どなたかご教授いただけると助かります。 よろしくお願いします。

  • エクセルで1シートが6ページ印刷となる時、2枚目以降だけにページ番号をつけるには

    どなたか詳しい方、お願いいたします。 エクセルの1シートが縦長で、A4で8ページの印刷となります。 1ページ目が表紙の体裁なのでページ番号は無し、2枚目から1~7とフッター中央にページ番号をつけたいのです。さらにプリンターの両面印刷機能で一気にA3横2枚に小冊子風に印字したいのです。 2シートに分けると、プリンターの両面印刷機能がダメで、分かれてしまいます。 1シートのまま、1ページ目は空白、2ページ目以降に1から連番とするフッターの設定はできるのでしょうか?

  • VBA 印刷について教えてください

    シートにデータを日ごと入力しています。そのデータを印刷をかけたいのですが、その日ごとに件数が異なります。 1行目は、項目 その下からデータになります。 件数は200件の時もあれば、300件のときも・・・ そこで、VBAを利用して印刷をしたいのですが、1枚に40件印刷をしたいのです。 1行は項目、40行データ よって一枚に41入る事のなります。 見出しの設定はわかります。 2枚目は 42から82 3枚目は 83から122 という感じです 行は、kまで 用紙はA4横です どのようにVBAを組めばよろしいでしょうか? よろしくお願いいたします。

専門家に質問してみよう