- ベストアンサー
エクセルであるセルに1から100まで入力し、それぞれ印刷するにはどのような方法がありますか?
こんばんは。お世話になります。 エクセルで、給与明細書を作っています。 職員の名前、基本給、能力給、稼動日、交通費などが一覧になっているデーター表があります。 NO 名前 基本給 稼動日.... 1 山田一郎 100000 25 2 山田次郎 120000 22 3 山田三郎 250000 22 ... ... この他に個人に渡す明細書があります。 VLOOKUP関数を使い、あるセルに、NOを入れると、自動的に他のデーターも変わるようにしました。 ここまではなんとか、できたのですが 現在、NOを打っては印刷、次のNOを打っては印刷、ということを繰り返しています。 これを何とか自動でしたいと思っています。 あるセルに自動で順に1から100までの数字を入力し、印刷を繰り返すためには、どのようなことをすれば良いのでしょうか? すみませんが、教えてください。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>あるセルに自動で順に1から100までの >数字を入力し、印刷を繰り返すためには・・・ 自動でということであれば マクロを使うことになるかと思います。 シートの名前や、あるセルがどこなのか わかりませんので、簡単なサンプルしか出せませんが、 Sheet1のA1に1~100まで順に代入しながら 1部づつ印刷するとして、以下のような感じになります。 Sub test() Dim i As Integer With Sheets("Sheet1") For i = 1 To 100 .Range("A1").Value = i .PrintOut Next End With End Sub これをご自分のシートに合わせて、 アレンジすれば出来ると思います。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
質問でいっておられるやり方を、過去に回答したことがあります。 印刷は#2のご回答で骨子は出ていますが、私なら Sub test02() Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("sheet1") 'データシート Set sh2 = Worksheets("sheet2") '印刷シート d1 = sh1.Range("A65536").End(xlUp).Row For i = 1 To d1 sh2.Cells(1, "F") = i 'あるセル sh2.Range("A1:J20").PrintOut Next i End Sub sh2.Range("A!:J20").の範囲は、各人の給与明細ごとに変わらないはずなので一定(の同じ範囲)でしょう。 しかし現実例では、1ページ(用紙1枚)に、数人分印刷したりしませんか。そうすると、少し簡単でなくなる。こういう風な問題に対応・応用できないと、ここでVBA回答を得ても、使えないことになるので、相当力をつけてからでないと、仕事には使えないように思うのですが。
- driverII
- ベストアンサー率27% (248/913)
マクロを使うのが良いでしょうね。 ツール->マクロ->新しいマクロの記録 の記録を選択し、「数字を入力し印刷する」のを記録してみてください。 それが出来れば、あとは数字を変化させながら繰り返すようにすればOKです。 参考までに変化させながら繰り返すのは・・ For I = 1 to 100 繰り返す処理 Next I と書きます。数字をセットしているところをIと置き換えればOKですよ。
お礼
ご回答ありがとうございます。 おっしゃるとおり、まったく力がないのに、お恥ずかしい限りです。 きちんと自力で勉強しなければ・・・と思いつつ、業務に追われ、ついこちらに頼ってしまっています。 申し訳ありません・・・。 でもとても助かりました。 ありがとうございました!!