○第49回目 ちょっとした小物、印刷編3
最後の"5.複数のシートが一括で印刷できる機能"です。
これもよく使い機能です。エクセルはシート内にいっぱい詰め込んでも可能だし、シートを分けて作っても大丈夫です。算定過程はシートに詰め込んで、結果の表などはシートを分けて細かく区分するというのが多いようです。
ですから、このシートからこのシートまでページをつけて印刷したいということがよくあるということです。特に最近は色つきが多くなっているので、カラープリンタで印刷したいということになります。プリンタの選択は前回やりましたので省略します。
入力すべきパラメータは、現在のシートを含めて印刷したいシート数と初めのページとなります。
今回のシートはグラフシートを含みますので、結構簡単になります。
以前にやりましたが、シート数は sheets.countに入っていますし、現在のシート番号は、ActiveSheet.Indexに入っています。
シート番号でシートを指定するのは、 Sheets(i).Select となります。
次のシートへのページ番号の引継ぎの仕方についてですが、現在では複数ページになる場合のそのページ数の取得の仕方がわかりません(2007のせいかもしれません)。それゆえに、1シート・1ページという前提とします。すると、次のシートを印刷する際に、初めのページ数を+1ずつしていくことになります。
複数ページへの対象は、その部分だけで印刷して、前後を分けて印刷するというやり方です。全部が複数ページだったら、この機能は意味がありません。
主な構造は、
j = InputBox("印刷したいシート数の入力 ", , 10)
:
For i = sh0 To sh0+j-1
shees(i).select
ActiveSheet.PageSetup.FirstPageNumber = 1+i-sh0
〈印刷〉
Next
:
最初から欲張らずに、少しずつ機能を追加したいったほうがいいと思います。最初は複数のシートの印刷だけ。それができたら、ページ数を入れる。それが出来たらプリンタの選択を入れる、という具合にです。
テストの段階で一シートにかなりの枚数が打ち出される場合は、前々回のやり方で、印刷ページ数を限定するといいですね。〈ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1〉
また、テスト段階は、印刷の代わりにプレビューでもうまくやれるのかもしれません。
ということで、複数シートの印刷は大変なように見えて、それほど大変ではないということがわかります。ページ数、プリンタの選択などの機能がないとしても、便利な機能だと思います。
ただし、シートにいろいろと詰め込むタイプの人の場合は、ページ数指定の印刷、指定範囲の印刷のほうが便利です。ニーズに合わせて使い分けてください。
(筆者も考えてみれば詰め込みタイプのようです)

0 件のコメント:
コメントを投稿