重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

こんばんは。お世話になります。


エクセルで、給与明細書を作っています。
職員の名前、基本給、能力給、稼動日、交通費などが一覧になっているデーター表があります。


NO 名前    基本給   稼動日....
1 山田一郎  100000    25
2 山田次郎  120000    22
3 山田三郎  250000    22
   ...
   ...

この他に個人に渡す明細書があります。
VLOOKUP関数を使い、あるセルに、NOを入れると、自動的に他のデーターも変わるようにしました。

ここまではなんとか、できたのですが
現在、NOを打っては印刷、次のNOを打っては印刷、ということを繰り返しています。

これを何とか自動でしたいと思っています。

あるセルに自動で順に1から100までの数字を入力し、印刷を繰り返すためには、どのようなことをすれば良いのでしょうか?

すみませんが、教えてください。
よろしくお願いします。

A 回答 (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

これをご自分のシートに合わせて、
アレンジすれば出来ると思います。
    • good
    • 0

質問でいっておられるやり方を、過去に回答したことがあります。


印刷は#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回答を得ても、使えないことになるので、相当力をつけてからでないと、仕事には使えないように思うのですが。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
おっしゃるとおり、まったく力がないのに、お恥ずかしい限りです。
きちんと自力で勉強しなければ・・・と思いつつ、業務に追われ、ついこちらに頼ってしまっています。
申し訳ありません・・・。
でもとても助かりました。
ありがとうございました!!

お礼日時:2006/01/11 18:44

マクロを使うのが良いでしょうね。



ツール->マクロ->新しいマクロの記録

の記録を選択し、「数字を入力し印刷する」のを記録してみてください。

それが出来れば、あとは数字を変化させながら繰り返すようにすればOKです。

参考までに変化させながら繰り返すのは・・

For I = 1 to 100
繰り返す処理
Next I

と書きます。数字をセットしているところをIと置き換えればOKですよ。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

今、見られている記事はコレ!