出産前後の痔にはご注意!

お世話になります。

excelでwordへの差し込み印刷をよく利用するのですが、
同様に、
excelのデータをexcelに流し込んで印刷する方法はありますでしょうか。

excelの名簿のデータを
excelの表のフォーマットに流し込んで
1人づつ印刷したいのですが。

お分かりの方いらっしゃいました教えてください。
どうぞ宜しくお願い致します。

このQ&Aに関連する最新のQ&A

A 回答 (7件)

イメージはわかるが、エクセルに差込印刷の機能はありません。


ワードなどと違ってA.X氏1人分書類シート作成、B印刷、Aのシートををy氏分のデータでシート内容(セル)を置き換え、印刷、の繰り返しをします。
ーー
例データ Sheet1 A1;D3
連番氏名住所品物
1山田 三郎東京都江東区かばん
2植田 健横浜市港北区帽子
A列はこのたび連番を振りました。
Sheet2   に送り状の書式を体裁よく作ります。
H1セル(どこでも良いが、下記のVLOOKUPの式は変わる)

送り状

住所X
氏名Y

品物Z

上記の品をお送り申し上げます。
ご査収ください

以上
Xの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,2,FALSE)
Yの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,3,FALSE)
Zの場所のセルに =VLOOKUP($H$1,Sheet1!$A$1:$D$3,4,FALSE)

---
結果

送り状

住所山田 三郎
氏名東京都江東区

品物かばん

上記の品をお送り申し上げます。
ご査収ください

以上
ここで
VBE画面で標準モジュールに
Sub test01()
For i = 1 To 2 '人数分
Range("H1") = i
Range("A1:G20").PrintOut '印刷範囲は各人同じとする
Next i
End Sub
を張り付け、実行する。
山田、植田分の紙が2枚印刷されました。
これは質問者はVBAの経験も無いでしょうと、最低限にしてあります。
VBAを勉強してください。
別ブックにある名簿を対象などは複雑になるので避けています。
    • good
    • 22

私も興味があって、先日こんなサイトを見ました。


私は、理解できなくて、できませんでしたが・・・・
参考にしてください。
http://pc.nikkeibp.co.jp/article/NPC/20070301/26 …

参考URL:http://pc.nikkeibp.co.jp/article/NPC/20070301/26 …
    • good
    • 27

VLOOKUP関数,HLOOK関数,MATCH関数,INDEX関数,INDIRECT関数等を用いれば


1人ずつ印刷は可能です。

ただ連続印刷したい場合は、レコード番号をVBAで変化させる必要があります。

Sheet1にデータを作成A2:D100の範囲
A B  C     D
No. 氏名 郵便番号 住所
1 AAA 100-0001 東京都千代田区千代田
2 BBB 103-0001 東京都中央区日本橋小伝馬町


Sheet2に印刷用フォームを作成
A1にNo.を入力するように設定、B1:Z20を印刷範囲に設定
郵便番号 C5=VLOOKUP($A$1,Sheet1!$A$2:$D$100,2,FALSE)
住__所 C7=VLOOKUP($A$1,Sheet1!$A$2:$D$100,3,FALSE)
氏__名 D9=VLOOKUP($A$1,Sheet1!$A$2:$D$100,4,FALSE)

マクロの例
Sub SAHIKOMI()
SNO = InputBox("開始No.を入力")
ENO = InputBox("終了No.を入力")
For I = SNO To ENO
WorkSheets("Sheet2").Range("A1") = I
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next I
End Sub
    • good
    • 28

VBAを試すつもりがおありでしたら以下を参考にしてください。

VBAのひな型を回答しています。
http://oshiete1.goo.ne.jp/qa3064424.html
    • good
    • 10

VLOOK関数を使うとできると思います。


例えば「名簿」というシートに名簿を作り、そのA列には連番を振っておきます(1~100など)。
そして、表(フォーマット)の例えばA1のセルに名簿の番号を入力したときにそれぞれのセルに名簿のデータを表示させるには、その表示させたいセルひとつひとつに、

=VLOOKUP(A1,名簿!A1:D6,2,0)
      ↑※データの入力されている範囲と、表示させたいデータのある列の位置を入力

と入力すれば良いと思います。
詳しくはVLOOKUP関数について調べてみてください。
    • good
    • 20

差込印刷ならできません。



印刷人数分のフォーマットをシートを作り、そこへちまちま
リンクさせて、原稿を作るのならできますけれどね。
    • good
    • 11

Excelには差込印刷機能がありません。


VBAでどうにかなるかは知りませんので、興味があれば研究してください。
    • good
    • 8

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qエクセルから帳票形式に差込印刷したいのですが

皆さん初めまして!

エクセルで1万件に近いデータがあります。

これらを帳票形式に差込印刷したいと思えば、ワードの「差込印刷」機能以外に、エクセル自体で行なうことは不可能でしょうか?

(例:請求データを請求書フォームに印刷)

ワードの差込印刷は便利ですが、エクセルデータ形式(特に金額のカンマ区切り表示が必要なため)を参照する際は、フィールド設定の数の制限が22列まで?で・・・行き詰っています(私は約40列あります)。

エクセル・ワードの操作は上級手前の操作まではいけますが、
エクセルでVBA、差込印刷マクロを作るとまではいけないもので・・・何か妙案がありましたらご教示願います・・・

Aベストアンサー

#01です。出血大サービスです(^^;
ただし不具合以外の修正はご自身でお願いします。
2行目~4行目と項目の定義の箇所は再度設定し直してください。

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub InsPrint()
Const org As String = "Sheet1" '元データのシート名
Const prs As String = "Sheet2" '印刷するシート名
Const strt As Integer = 2 '元データの実データ開始行
Dim idx, fromL, toL As Long
Dim oSht, pSht As Worksheet
Dim res, res2
 Set oSht = Worksheets(org)
 Set pSht = Worksheets(prs)
 res = MsgBox("印刷行範囲を指定しますか?" & Chr(13) & _
  "はい:指定する、いいえ:指定しないで全件印刷、CANCEL:印刷しない", vbYesNoCancel)
 Select Case res
  Case Is = vbCancel
   Exit Sub
  Case Is = vbYes
   res2 = Application.InputBox("印刷開始行を半角数字で入力して下さい", Type:=1)
   If TypeName(res2) = "Boolean" Then
    MsgBox "印刷を中止しました", vbOKOnly
    Exit Sub
   Else
    If res2 >= strt And res2 <= oSht.Range("A65536").End(xlUp).Row Then
     fromL = res2
    Else
     MsgBox "開始行が不適切です。印刷を中止しました", vbOKOnly
     Exit Sub
    End If
   End If
   res2 = Application.InputBox("印刷する最終行を入力して下さい" & Chr(13) & _
     "99999を入力すると最終行まで印刷します", Type:=1)
   If TypeName(res2) = "Boolean" Then
    MsgBox "印刷を中止しました", vbOKOnly
    Exit Sub
   Else
    If res2 = 99999 Then
     toL = oSht.Range("A65536").End(xlUp).Row
    Else
     If res2 >= fromL And res2 <= oSht.Range("A65536").End(xlUp).Row Then
      toL = res2
     Else
      MsgBox "最終行が不適切です。印刷を中止しました", vbOKOnly
      Exit Sub
     End If
    End If
   End If
  Case Else
   fromL = strt
   toL = oSht.Range("A65536").End(xlUp).Row
 End Select

 For idx = fromL To toL
'以下の行を項目数だけコピーして定義する
  pSht.Range("A1").Value = oSht.Cells(idx, "A").Value
'
  pSht.PrintOut '印刷
'5頁につき8秒休止する
  If (idx Mod 5) = 0 Then
   DoEvents
   Sleep 8000
  End If
 Next idx
End Sub

#01です。出血大サービスです(^^;
ただし不具合以外の修正はご自身でお願いします。
2行目~4行目と項目の定義の箇所は再度設定し直してください。

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub InsPrint()
Const org As String = "Sheet1" '元データのシート名
Const prs As String = "Sheet2" '印刷するシート名
Const strt As Integer = 2 '元データの実データ開始行
Dim idx, fromL, toL As Long
Dim oSht, pSht As Worksheet
Dim res, res2
 Set oSht = Works...続きを読む

Qエクセルの名簿一覧表からすでにエクセルで作られている一人づつのシートに差込印刷

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

Aベストアンサー

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も自由に別列に設定できます。

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!...続きを読む

Qexcelデータを使用して、excelの別なシートに、差し込み印刷をし

excelデータを使用して、excelの別なシートに、差し込み印刷をしたいのですが、その方法が解りません。ご存知の方いらっしゃればお教えください。

Aベストアンサー

Excel 2007では、ウィザードを使ってラベル印刷ができるようですが、Excelの一般機能では差し込み印刷はできません。

「Excel ラベル印刷ウィザード」
http://office.microsoft.com/ja-jp/excel/HP100775161041.aspx

VBAを使えば、Excelで差し込み印刷ができるようですが、VBAに慣れておられなければ、Wordの差し込み印刷を使用した方がよいと思います。

下記URLのページは、VBAを使った差し込み印刷の過去ログの例と検索結果です。

「エクセルの名簿一覧表からすでにエクセルで作られている一人づつのシートに差込印刷」
http://oshiete1.goo.ne.jp/qa667710.html

「Excel 差し込み印刷 VBA」の検索結果
http://www.google.co.jp/search?hl=ja&num=20&q=Excel%E3%80%80%E5%B7%AE%E3%81%97%E8%BE%BC%E3%81%BF%E5%8D%B0%E5%88%B7%E3%80%80VBA&lr=lang_ja&aq=f&oq=

Excel 2007では、ウィザードを使ってラベル印刷ができるようですが、Excelの一般機能では差し込み印刷はできません。

「Excel ラベル印刷ウィザード」
http://office.microsoft.com/ja-jp/excel/HP100775161041.aspx

VBAを使えば、Excelで差し込み印刷ができるようですが、VBAに慣れておられなければ、Wordの差し込み印刷を使用した方がよいと思います。

下記URLのページは、VBAを使った差し込み印刷の過去ログの例と検索結果です。

「エクセルの名簿一覧表からすでにエクセルで作られている一人づつ...続きを読む

Qエクセルで打ち込んだ数字を自動で別シートに表示したい

エクセルでセルに打ち込んだ数字を自動で別シートに表示できる方法があれば、教えてください。

例えば、シート1のC1に5を打ち込んだら、シート2のD2にシート1で打ち込んだ5が自動で表示される。

また1列すべてを自動で表示させる場合、一つのセルの時と違いがありましたら教えてください。よろしくお願いします。

Aベストアンサー

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コピー&リンク貼り付けを使うと便利です。

例)例)シート1のC1~C5に何かを入力したら、
  シート2のD2~D7にシート1で打ち込んだものが自動で表示される

  シート1にあるコピー元のセルを範囲選択して、
  シート2のD2の上で「右クリック」⇒「形式を選択して貼り付け」
  をクリックします。

  そして出てきた小さな画面の左下にある「リンク貼り付け」という
  ボタンをクリックすると完成です。
  試してみてください。。

  念のためにリンク貼り付けを図解しているURLを載せておきます。
  参考にしてみてくださいね。。
  http://www.geocities.jp/office_inoue/excel/eq21.htm

こんばんは。
入力したセルの値を合計とかでなくて、
純粋に別のシートに自動的に表示したいのであれば、
以下の方法があります。

1.1つのセルだけの場合
例)シート1のC1に5を打ち込んだら、
  シート2のD2にシート1で打ち込んだ5が自動で表示される

⇒シート2のD2のセルをアクティブにして「=」を入力
 した後、シート1のC1をクリックする。
 そうするとD2のセルに「=Sheet1!C1」と表示され、値が自動的に
 表示されるようになります。

2.1列全てコピーしたい場合。
  コ...続きを読む

Qエクセルを使って名簿を連続印刷するには

名簿の名前だけを一人一人ピックアップして、A1のセルに入れて、連続して自動印刷はできますか。
使っているソフトは、EXCEL2003です。
宜しくお願いいたします。

Aベストアンサー

もう少し名簿がどのシートにどのような状態であるとか、印刷用のシートは別シートであるとか、
マクロの知識はありますとか、詳細な情報を質問に入れた方が、回答を得易いと思いますよ。

で、Sheet1のセルAに以下のように名簿が並んでるとします。

氏名(これはタイトル)
宛先 氏名1
宛先 氏名2
宛先 氏名3
宛先 氏名4
宛先 氏名5
宛先 氏名6
宛先 氏名7
宛先 氏名8
宛先 氏名9

印刷は別のシート、例えばSheet2に印刷するとした場合は以下のマクロで行えます。
なお、Sheet2の印刷範囲は仮にA1:D7の範囲としています。

Sub Pri_Name()

 Range("A2").Activate
 Do While ActiveCell.Text <> ""
  Worksheets(2).Range("A1").Value = ActiveCell.Text
  Worksheets(2).Range("A1:D7").PrintOut
  ActiveCell.Offset(1, 0).Activate
 Loop

End Sub

上記のマクロはAltキーを押しながらF11キーを押して表示されるマクロのエディタでF7キーを
押して出てきたところに貼り付けます。
印刷を実行する場合はAltキーを押しながらF8キーを押して表示されるマクロの実行指示画面で
「Sheet1.Pri_Name」が選択されている事を確認して、同画面にある「実行(R)」ボタンを押します。

もう少し名簿がどのシートにどのような状態であるとか、印刷用のシートは別シートであるとか、
マクロの知識はありますとか、詳細な情報を質問に入れた方が、回答を得易いと思いますよ。

で、Sheet1のセルAに以下のように名簿が並んでるとします。

氏名(これはタイトル)
宛先 氏名1
宛先 氏名2
宛先 氏名3
宛先 氏名4
宛先 氏名5
宛先 氏名6
宛先 氏名7
宛先 氏名8
宛先 氏名9

印刷は別のシート、例えばSheet2に印刷するとした場合は以下のマクロで行えます。
なお、Sheet2の印刷範...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QWordで、1ページを丸ごと削除するには?

1ページしか必要ないのに、真っ白な2ページ目がその下に表示されてしまった場合、この余分な2ページ目を一括削除(消去)する為に、何かいい方法があるでしょうか?

Aベストアンサー

<表示されてしまった場合>
これはそれなりに理由があるわけで、改ページや改行によって、次のページにまで入力が及んでいる時にそうなります。
特に罫線で表を作成し、ページの下一杯まで罫線を引いたときなどには、よくなる現象です。

さて、メニューの「表示」で段落記号にチェックが入っていないと、改行や改ページなどの入力情報が見えず、白紙のページを全て選択→削除してもそのままということが良くあります。
1 改行マークが白紙のページの先頭に入っていれば、それをBackSpaceで消してやる。
2 罫線を使っている場合は、それでも効果がない場合がありますが、その時は行数を増やしてやる。
などの方法があります。

Qエクセルで、頭に0をつけて数字の桁を揃える方法

エクセルで、必ず5桁の数字を入れる列があるとします。
ところが、数値データとして最初に作っているので、0が頭になく桁が足りない場合があります。
任意文字として5桁の数字にしたいのですが、

何かいい方法はありませんでしょうか?

例)
A列 A列
50      00050
1000  ⇒  01000
11111    11111

どうぞよろしくお願いいたします。

Aベストアンサー

次の方法は如何でしょうか。
(1)表示だけで良いのならば、セルの書式設定→表示形式→ユーザ定義で00000を設定
(2)データとして必要ならば、空き列(仮にB列)B1に=TEXT(A1,"00000")を入力、下方向にコピー→B列をコピー→A列に形式を選択して貼り付けで「値」を選択→OK、B列を削除

Q(Excel)あるセルに文字を入力しただけで、同じブック内のほかのワークシートにも、同じ文字が自動的に入るようにするには?

こんにちは。
質問内容はタイトルのとおりです。

あるワークシートのあるセルに文字を入力すると、ほかのワークシートのセルにも同じ文字が自動的に書き込まれる方法を知りたいです(ブックは同じ)。複数のワークシートを制御するには、やはりマクロを使うのでしょうか?

よろしくお願いします。

Aベストアンサー

clam_chowderさん、こんにちは。

Sheet1のA1にたとえば「100」と入力しますね。
Sheet2のA1に、これと同じ数値を表示するには、
 =Sheet1!A1
でOKです。

数式をいれるのが苦手なら、
Sheet2のA1セルで「=」を入力すると、数式入力状態に入りますから、
ここでSheet1のシートタブをクリックし、
リンクしたいA1セルをクリックしてEnterすると、
自動的にさきほどと同じ式が入ります。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング