解決済みの質問
Win XP /エクセル2003 使用です。
エクセルで請求書を作成しています。
1件の請求書に1行目から100行目を使用し、
2件目は、101行目から200行目、
3件目は、201行目から300行目・・・を使用しています。
現在、印刷する時は、一枚一枚、
「印刷範囲を指定」して出力しているのですが、
これをマクロまたはVBAのボタン機能を使って、
印刷できるようにしたいのですが、
何か良いサンプルなどはありますでしょうか?
よろしくお願いいたします。
投稿日時 - 2010-11-16 11:57:50
私は、頭が悪いのでしょうか、質問が良く分かりません。一体、どうしたわけでしょうか?
印刷範囲を指定しないでも良いようにしたいのか、#2さんのマクロのように、印刷範囲を、マクロで指定したいのでしょうか?それとも、1件目、2件目というように別けたいのでしょうか。
#1さんのご指摘のように、1ページを100行に指定すれば良いわけですが、それだとかなり小さくなりますね。100%の倍率で、せいぜい50行前後ですから。
縮小せずに、1件目と2件目の間を別けたいなら、100行目の所に、ページ改行すればよいと思います。タイトルを切り分けるならマクロが必要になるように思いますが。
投稿日時 - 2010-11-16 14:26:55
お礼
Wendy02 さま 早速のご回答ありがとうございました。
返事が大変遅くなり申し訳ございません。
こちらの質問の仕方が悪く大変申し訳御座いませんでした。
なんとか解決いたしました。
今後ともよろしくお願いします。
投稿日時 - 2010-12-08 04:41:34
0人が「このQ&Aが役に立った」と投票しています
ベストアンサー以外の回答(2件中 1~2件目)
VBAで書くならこんなところ。
---------------------------------------
'印刷する行数
Private Const PRINT_LINE = 100
'指定できる最大件数(暫定値)
Private Const MAX_CNT = 500
Sub Macro1()
On Error GoTo EXIT_SUB
Dim kensuu As Integer
Dim bkrow, bkcol As Long
'現在のセル位置の保存(複数セルを選択しているケースは考慮外)
bkrow = ActiveCell.Row
bkcol = ActiveCell.Column
'何件目を印刷するか指定させる
kensuu = Application.InputBox("何件目を印刷しますか?", "印刷件数指定", , , , , , 1)
'指定した件数の範囲チェック
If kensuu <= 0 Or kensuu > MAX_CNT Then
'件数が0の場合は「キャンセル」かもしれないので、
'0以外の場合だけメッセージ出力
If kensuu <> 0 Then
MsgBox "件数が範囲外です。", vbOKOnly + vbExclamation
End If
GoTo EXIT_SUB
End If
'画面更新の抑止設定
Application.ScreenUpdating = False
'指定した行数を選択して印刷(標準プリンタ使用)
Rows(((kensuu - 1) * PRINT_LINE + 1) & ":" & (kensuu * PRINT_LINE)).Select
Selection.PrintOut Copies:=1, Collate:=True
'セル位置の復元
Cells(bkrow, bkcol).Select
EXIT_SUB:
'画面更新の抑止解除
Application.ScreenUpdating = True
Exit Sub
End Sub
投稿日時 - 2010-11-16 12:55:21
お礼
crossgate さま 早速のご回答ありがとうございました。
返事が大変遅くなり申し訳ございません。
コードまでご教授いただきありがとうございました。
なんとか解決いたしました。
今後ともよろしくお願いします。
投稿日時 - 2010-12-08 04:42:40
OKWaveのオススメ
おすすめリンク