dポイントプレゼントキャンペーン実施中!

エクセルでできている名簿リストから、すでにエクセルでできている個人別のシートに差込印刷したいのです。一人ずつセル参照で作ることはできるのですが、全部で300人分くらいあるのでワードの差込印刷のように一度にできる方法が知りたいのです。本日中にやらねばならないので手作業では、間に合いそうにありませんしVBAの勉強をしている余裕もありません。

A 回答 (7件)

VBAでもない解答をします。

ただファイル-印刷の操作を
300回すること。最終部のようにすれば、VBAで自動化も出来ます。
(1)Sheet2のA1:E3に住所録が
氏名郵便番号住所1住所2
山田 和郎111-1111東京都小平市新町2-1-2光マンション222
木之下 重雄222-2222東京都三鷹市本町4-3-2三国荘201
あるとします。本番ではA1:E300とかに住所録があります。
(2)Sheet1は印刷する画面シートです。
F1セルに2、
F2に="Sheet2!A"&F1
F3に="Sheet2!B"&F1
F4に="Sheet2!C"&F1
F5に="Sheet2!D"&F1
F6に="Sheet2!E"&F1
郵便番号を置くセルをB3として式=INDIRECT(F3)
府県市を入れるセルをB5として式=INDIRECT(F4)
町番地を入れるセルをB6として式=INDIRECT(F5)
気付を入れるセルをC6として式=INDIRECT(F6)
名前を入れるセルをB8として式=INDIRECT(F2)
C8に「様」を入れる。
(3)F1セルが2の時は
111-1111

東京都小平市
新町2-1-2光マンション222

山田 和郎様
となりますが、このA1:C8を印刷する。
(4)F1セルの値を3に変える(3を入力する)と
222-2222

東京都三鷹市
本町4-3-2三国荘201

木之下 重雄様
と瞬時に変るが、これを印刷する。
(5)F1を4、5、6、・・・と変えて印刷、変えて印刷すれば良い。
この(5)の部分だけをマクロの記録やVBAにすれば、
同じVBAでも既解答よりずっと易しいと思いますがいかがででしょうか。
Sub test01()
Worksheets("sheet1").Activate
For i = 2 To 3 '300
Cells(1, "F") = i
Range("a1:c8").PrintOut
Next i
End Sub
行高、セル幅、フォントサイズなどは手動で設定。
氏名、郵便番号、住所を置くセルは自由に出来ます。
上記でF1:F6も自由に別列に設定できます。
    • good
    • 3
この回答へのお礼

有難うございました、まとめてお礼させていただきます。でも、結構難しいですね。一人分のデーターをセル参照式にてカードに転記するのはできてるのですが、次の行の同じ列に変えてなどというのは、コマンドで簡単にできるのかと思ってましたので。前日に似たような質問ありましたよと書かれてた人ありましたが、それも私です。ただ、条件をきっちり書いてなかったのでエクセル表からワードの差込印刷すればという意見多くてし直した次第です。補足に書いても反応なかったので。でも、この機能ってエクセルのコマンドにあってもよさそうに思うのは、私だけでしょうか

お礼日時:2003/10/02 23:08

No.5 ですが、急いだのでちょっと訂正です。


どのシートをアクティブにした状態でマクロを実行してもいいようにするつもり
でしたので、コードを次のように訂正します。

なお、データの配置が違って使えない場合は、状況を補足願います。

Sub SashikomiPrt()
Dim Meibo As Worksheet
Dim Kojin As Worksheet
Dim Rng As Range
Dim R As Range
Set Meibo = Worksheets("名簿") '基データシート名指定
Set Kojin = Worksheets("個人別") '印刷シート名指定
Set Rng = Meibo.Range("A2:A300") '差し込むデータの一番左列の範囲
For Each R In Rng

  '↓ 個人別シートの B2 にA列のデータを差し込む場合
  Kojin.Range("B2").Value = R.Value

  '↓ さらに個人別シートの C2 に 「1つ右のセル」内容を差し込む場合の例
  Kojin.Range("C2").Value = R.Offset(, 1).Value

  ' もっと差し込む場合は、この下に次々記述します。
  'Kojin.Range("D2").Value = R.Offset(, 2).Value

  Kojin.PrintPreview 'プレビューで確認しながら印刷する場合
  'Kojin.PrintOut ' 直接印刷する場合。(先頭の ' を上に付替える)

Next R
Set Meibo = Nothing
Set Kojin = Nothing
End Sub
    • good
    • 2

データがどのように配置されていて、差込するのは、どの部分なのか、解らないのですが、


取り敢えず、任意に設定できるように作りましたのでテストしてみてください。

たぶん、このようなことと解釈したのですが・・・

一応、VBAの設定方法を書いておきます。

1.Alt + F11 で VBE(Visual Basic Editor)を開きます。
2.VBE のメニューから[挿入] -->[標準モジュール] を指定します。
3.モジュールウィンドウに下記コードをコピーして貼り付けます。
4.現状に合わせ、6~7行目とその以降の差し込む位置と個数を設定します。
5.Alt + Q (または、右上隅の×)でウィンドウを閉じ、シートに戻ります。
6.メニューから[ツール]-->[マクロ]-->[セキュリティ]で「セキュリティレベル」を
 「中」を選択して[OK]します。
7.実行するときは、Alt + F8 (メニューから[ツール]-->[マクロ]-->[マクロ])で
 「SashikomiPrt」を指定し、[実行]ボタンを押します。

Sub SashikomiPrt()
Dim Meibo As Worksheet
Dim Kojin As Worksheet
Dim Rng As Range
Dim R As Range
Set Meibo = Worksheets("名簿") '基データシート名指定
Set Kojin = Worksheets("個人別") '印刷シート名指定
Set Rng = Meibo.Range("A2:A300") '差し込むデータの一番左列の範囲
For Each R In Rng

  '↓ 個人別シートの B2 にA列のデータを差し込む場合
  Kojin.Range("B2").Value = R.Value

  '↓ さらに個人別シートの C2 に 「1つ右のセル」内容を差し込む場合の例
  Kojin.Range("C2").Value = R.Offset(, 1).Value

  ' もっと差し込む場合は、この下に次々記述します。
  'Kojin.Range("D2").Value = R.Offset(, 2).Value

  ActiveSheet.PrintPreview 'プレビューで確認しながら印刷する場合
  'ActiveSheet.PrintOut ' 直接印刷する場合。(先頭の ' を上に付替える)

Next R
Set Meibo = Nothing
Set Kojin = Nothing
End Sub
    • good
    • 2

No2の方法で良いと思います。


小生はこういった場合マクロに次のような設定でやっています。
Sheet1が印刷するフォームで印刷範囲の設定済み
Sheet2がデータ
データに連番たとえばA列
Sheet1の印刷以外のところたとえばA1のセルに印刷データ検索値 Vlookup(検索値、データ範囲(名前をつけると便利)・・・・となりそれぞれの差し込み部分を対応させる。

Sub 印刷print()
Dim i As Integer
For i = 1 To 300

Worksheets("sheet1").Activate
Range("A1").Value = i
ActiveSheet.PrintOut
'ActiveSheet.PrintPreview

Next
End Sub

印刷をしないで確認の場合は’ActiveSheet.PrintOut
とし、ActiveSheet.PrintPreviewの ' を外す
テストの場合i=1 to 2 とかでやって確認すればよいでしょう
    • good
    • 2

大変ですね。


自動で一度に印刷はできないのですが、1人分印刷ごとに番号入力する程度になら短縮可能です。
データ行の先頭セルに連番を振る事はできますか?また、印刷シートの印刷範囲外のセルに入力は可能でしょうか?
できるようでしたら、印刷シート側でVLOOKUP関数を使えばできます。
あまり大したアイディアでは無いですが・・もうすでに思いついてらっしゃるかとも思ったのですが少しでも手助けになればと思い回答してみました。
頑張ってください。
    • good
    • 6

VLOOKUP関数を使いましょう。


既存のシートの左端に列を一列挿入して、
通し番号を入れます。
あとは、差込印刷したい部分に、
VLOOKUP関数を入力します。

ポイントは、印刷シートの欄外に検索値のセルを設定することです。
    • good
    • 2

「word 差込」でgoogle検索、結構かなりヒットします



そのなかの一つ
http://www.moka-tcg.ed.jp/yuuai/oshirase/word/sa …

参考URL:http://www.moka-tcg.ed.jp/yuuai/oshirase/word/sa …
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています