- ベストアンサー
印刷マクロを教えてください。
マクロは初心者です。よろしくお願いいたします。 エクセルで、列AからHまでにデータを入力しています。 また、Aの1から、Aの3までは行タイトルとしています。 列A4から下の行にNo1~の順番号をいれていますが、 例えばNo20からN045までのデータ分だけを印刷したい時など、指定したNoの範囲のデータだけを印刷出来るようなマクロがあれば教えてください。 印刷Noの指定は、行番号でもかまいません。 これまでの質問で印刷関係をみてみましたが、多すぎてわかりませんでした。どなたかよろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
さっきの余計なのが入ってました。 改めて 例 Sub Macro1() s1 = InputBox("はじめの番号") s2 = InputBox("おわりの番号") Rows("4:" & s1 - 1).EntireRow.Hidden = True en = ActiveSheet.Cells.SpecialCells(xlLastCell).Row Rows(s2 + 1 & ":" & en).EntireRow.Hidden = True If MsgBox("印刷しますか?", vbYesNo) = vbYes Then ActiveSheet.PrintOut Rows("4:" & en).EntireRow.Hidden = False End Sub
その他の回答 (3)
- iekustam
- ベストアンサー率42% (32/76)
ご希望の内容程度なら印刷したい行範囲を選択して、印刷範囲の設定だけでもいいのでは?
- suz83238
- ベストアンサー率30% (197/656)
一番簡単なのは、指定の行を非表示にすればいいんじゃないですか? タイトル行の3行を除いて、4行目~はじめの指定の行の一つ前と指定の最後の行の一つ後から最終行までを非表示→印刷 例 Sub xxx() s1 = InputBox("はじめの番号") s2 = InputBox("おわりの番号") Rows("4:" & s1 - 1).EntireRow.Hidden = True en = ActiveSheet.Cells.SpecialCells(xlLastCell).Row Rows(s2 + 1 & ":" & en).EntireRow.Hidden = True Rows("4:4").RowHeight = 17.25 Rows("4:5").Select Selection.EntireRow.Hidden = True If MsgBox("印刷しますか?", vbYesNo) = vbYes Then ActiveSheet.PrintOut Rows("4:" & en).EntireRow.Hidden = False End Sub
- toshi_2000
- ベストアンサー率30% (306/1002)
指定は、INPUTBOX関数を使用してNoもしくは行番号を2回入力すると考えてよろしいですか。
お礼
早速のご教示、ありがとうございました。 マクロの作成が素人ですので、助かりました。 又、よろしくお願いいたします。