![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
エクセルにて繰り返し印刷の方法を質問します。
環境は、OSはME・エクセルは2000です。
現在、前任者からの引継ぎを行っています。
現在は200社ぐらいのデータを各シート(同じレイアウト)に分割入力しています。これでは入力・管理・印刷等も面倒なので、200社の入力データのみを1ページに入力して、表示や印刷のみは、別シートにする事を考えています。
<考え方>
1)ページA:200件の会社情報をコードにて管理。
必要なデータをそれぞれ入力。
2)ページB:表示や印刷する帳票レイアウト形式のページ。会社コードを入力すると、ページAから検索して、会社名やその他の情報を表示する。
表示は帳票形式のページに、データシートのセルを参照する形で可能です。vlookup関数を使用して、該当コードのそれぞれのデータを表示する・・・という形です。
問題は、この形式で印刷をしたいのです。
マクロ登録も考えましたが、1ページならばわかるのですが、複数会社を一回で印刷する方法がわかりません。
できれば、ページAに印刷指示セルの列を作り、ONになっている会社のみを印刷する・・・・ということが希望です。
マクロでできればよいのですが、繰り返しのまくろがわかりません。”VBAでできる”というのだけは分りますが、VBAについて、全然未経験なもので、実際の記述方法がわかりません。
過去の質問を見ましたが、該当そうなものをみつけられずに、困っています。どうぞよろしくお願いします。
No.2ベストアンサー
- 回答日時:
私も何度も回答してます。
例データ
Sheet1はデータシート
A1:E5
行番号氏名住所年齢印刷
1大田東京都34p
2山田横浜市36
3上村千葉市15p
4木村静岡市16p
Sheet2は印刷シート
そこに行って
A1に「1」と入力(A1はどこか目立たないところでもよい)
あるいは第1列か第1列を遊び行にしてしまう。
氏名を印刷したいセルに
=VLOOKUP($A$1,Sheet1!$A$1:$C$100,2,FALSE)
住所をセットしたいセルに
=VLOOKUP($A$1,Sheet1!$A$1:$C$100,3,FALSE)
これは判りますね。他の項目も好きなところへ、第3引数だけ変えて
式をセット。
(印刷)
ALTきを押しつつF11,I,Mを順次押すと、標準モジュール画面になる。
そこへ下記をコピペする。
骨子ですが
Sub test01()
Range("A2:J20").PrintOut
End Sub
ーー
これでは今の1ページしか印刷しない。
VBAでA1を変化させる。するとSheet2の中身が変わります。
●これを第2行から最下行まで繰り返し
●F列がブランクで無い行だけを印刷する
に改良すると下記コードになる。
ーー
Sub test01()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")
'--
d = sh1.Range("a65536").End(xlUp).Row
For i = 2 To d
If sh1.Cells(i - 1, "E") <> "" Then
sh2.Cells(1, "A") = i - 1
sh2.Range("A2:H20").PrintOut
End If
Next i
End Sub
ーー
これをF5を押して実行する。
このほかにも、ボタンをクリックすると実行する、などの方法があるので、勉強してください。
ーーー
印刷シートのSheet2に関して、書式、行高、列幅、印刷設定についてはVBAでやってません。手動でやってください。VBA熟練者には、型破りですが、そのほうが初心者には判りやすく、すぐ応用(自分で自由にできる)が効くからです。
わざわざ関数VLOOKUPを使うことを残しているのも、そういう見地からです。
自分流にチュニングが必要ですが(sh2.Range("A2:H20").PrintOutの印刷範囲など)推測して、テストしてみてください。
早速のご回答ありがとうございます。
丁寧な説明ありがとうございます。
早速試してみます。また経過をご報告します。
まずはお礼まで・・
ありがとうございました。m(__)m
No.1
- 回答日時:
早速のご回答ありがとうございます。
Wordの差し込み印刷ですか・・・考えてませんでした。
そうですね。そういうこともできますね。
今回は印刷したり、しなかったりということもあるので、これは見送りますが、また別の機会に参考にさせていただきます。
ありがとうございました。m(__)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルで”入力シート”の文字書式の変更を”出力シート”で同じ文字書式で印刷したいです。VBA希望 4 2023/04/24 11:07
- Excel(エクセル) セルによって印刷するシートを変える方法 EXCEL-VBA 2 2022/08/01 20:48
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- その他(パソコン・スマホ・電化製品) Webページ印刷時にヘッダー・フッターをつけたい 1 2022/04/25 21:35
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
- Excel(エクセル) エクセルで条件付き書式を使わずにセルの文字の色を変える方法を教えて下さい 8 2023/07/28 01:15
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
- Visual Basic(VBA) VBAで不特定枚数印刷をしたいです。 4 2022/08/02 07:30
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで表
-
【マクロ】for next構文について
-
職場の人から聞かれており、こ...
-
ユーザー定義関数をアドイン登...
-
PDFの請求明細をエクセルにしたい
-
Excel関数-文字列で自動作成さ...
-
Excelデータをコピペして、ペー...
-
エクセルの関数について教えて...
-
エクセルで不等号記号(≠)が上に...
-
スプレッドシート、Excelでの数...
-
スプレッドシートで使う数式を...
-
Excelで50個のセルに同じ文字を...
-
[オートフィルタ]で抽出された...
-
エクセルの問題です。絶対値の...
-
エクセル関数を教えてください
-
各ページの1番上の表示について
-
Microsoft Officeの中古は信用...
-
pdfの表をexcelにはりつけて計...
-
Excelのif関数で文字が見えなく...
-
Excel 2019 は、SPILL機能があ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報