プロが教えるわが家の防犯対策術!

たとえばSheet1にとある試合の結果(審判の名前や何点対何点だったかなど)を記入するフォームを作っておきます。
Sheet2には対戦する人の名前のリストを作ります。
そして、リストの順番にフォームの対戦する人を入れるセルだけを一枚一枚変えながら印刷することはできないですか?

やりかとはどうであれ、とにかくWordの差込印刷みたいに特定のセルだけを
変えながら印刷できないでしょうか?

A 回答 (3件)

エクセルVBAで出来ます。


最低線なら下記のように4ステップとごく簡単です。
データとして
Sheet1に
   (A列) (B列)
(1)取組表
(2)対戦相手西田 五郎
Sheet2に
   (A列)
(1)山田 一郎
(2)中田 二郎
(3)下田 三郎
を用意する。
(1)Sheet1の画面でALT+F11を押す。VBE画面になる。
(2)ALT+I(挿入)、ALT+M(標準モジュール)を押す。標準モジュールModule1が出来る。
(3)下記をModule1の画面に貼り付ける。
Sub test01()
For i = 1 To 3
Worksheets("sheet1").Range("b2") = _
Worksheets("sheet2").Cells(i, 1)
Worksheets("sheet1").Range("a1:d5").PrintOut
Next i
End Sub  
(4)プリンターに紙をセットしプリンタ電源等起動。
(5)VBE画面で実行-SUB/ユーザーフォームの実行をクリック。印刷が始   まる。3枚印刷される。
(6)解説
  ・上記はSub SubEndの中は5行ですが、2行はわざと2行に
   わけた行があるためで、4ステップと言いました。(アンダー
   バーがある行と次の行)。
  ・FOR NEXTは繰り返しなので、除くと、実質は2ステップとも言える。
  ・Sheet1,Sheet2の部分は、自分のシート名を””で囲んで置換えて
   ください。
  ・Range("B2")のところは、受ける側のセルを指定してください。
   印刷する帳票のレイアウトで決まり(変わり)ます。
  ・Cells(i, 1)はSheet2のどのセルよりデータを持ってくるかを指定します。
   Cells(i,j)のiは第1行目は1、第3行目は3・・。
   jはA列のとき1、B列は2、J列なら10です。推定できますよね。
  ・PrintOutはプリントの前にセットアップが色々出来ます。A4・B5指定、縦横
   指定、部数指定、フッター設定など。詳細は、マクロの記録をして何か印刷して
   詳細を察知してください。解説書を見るとかもしてください。
    • good
    • 0

こんにちは。



どこか空いたセルに数字か何かをいちいち入力して、その数字をキーにして、表示する相手の名前の部分をLOOKUP関数などを使用して表示して印刷するようにすれば、全自動ではないですが、マクロを使わなくても可能です。
    • good
    • 0

VBA(VISUAL BASIC for アプリケーション)でマクロを作ればできます。

    • good
    • 0

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