Excelで差し込み印刷
差し込み印刷はExcelなどのデータを元にWordに差し込んで印刷するものですが、Excelのシートに差し込んで印刷するというニーズもあります。
なぜ標準機能にないのか不思議に思います。
そこでExcelで差し込み印刷をするためのマクロを二つ書いてみました。
どちらかを試してみてください。
マクロ「差込」
「リスト」シートからデータを取り出して「書類」シートに貼り付けます。
どのように貼り付けるかは自由に変えられます。
「Sheets("書類").Cells(1, 2) = Sheets("リスト").Cells(i, 2)」の「Cells(1, 2)」の1と2の部分は「書類」の貼り付け先のセルに書き換えてください。
「Cells(i, 2)」の2の部分は「リスト」の元の列番号(A列が1、B列が2)に書き換えてください。
リストの左端には「id」という通し番号を付けておいてください。
マクロを実行すると「id」を訊かれます。そのidをリストから探して書類に貼り付けます。
貼り付け後は修正したり保存したり印刷したり通常のExcel操作になります。
Sub 差込()
Sheets("書類").Select
myid = InputBox("id?")
i = 2
Do
i = i + 1
Loop Until Sheets("リスト").Cells(i, 1) - myid = 0 Or Sheets("リスト").Cells(i, 1) = ""
If Sheets("リスト").Cells(i, 1) = "" Then
MsgBox "一致するidがありません。終了します。"
Exit Sub
End If
'この下の部分を書き換えて使います。
'「書類」シート=「リスト」シート
'Sheets("書類").Cells([書類の行番号],[書類の列番号]) = Sheets("リスト").Cells(i,[リストの列番号])
Sheets("書類").Cells(1, 2) = Sheets("リスト").Cells(i, 2)
Sheets("書類").Cells(3, 5) = Sheets("リスト").Cells(i, 3)
End Sub
Sheets("書類").Select
myid = InputBox("id?")
i = 2
Do
i = i + 1
Loop Until Sheets("リスト").Cells(i, 1) - myid = 0 Or Sheets("リスト").Cells(i, 1) = ""
If Sheets("リスト").Cells(i, 1) = "" Then
MsgBox "一致するidがありません。終了します。"
Exit Sub
End If
'この下の部分を書き換えて使います。
'「書類」シート=「リスト」シート
'Sheets("書類").Cells([書類の行番号],[書類の列番号]) = Sheets("リスト").Cells(i,[リストの列番号])
Sheets("書類").Cells(1, 2) = Sheets("リスト").Cells(i, 2)
Sheets("書類").Cells(3, 5) = Sheets("リスト").Cells(i, 3)
End Sub
マクロ「差込印刷」
「リスト」シートの最初の行から最後の行までデータを取り出して
「書類」シートに貼り付け、印刷します。
やはりどのように貼り付けるかあらかじめ書き換えておく必要があります。
途中で止まりませんので実行する際は慎重に。
Sub 差込印刷()
i = 2
Do
'この下の部分を書き換えて使います。
'「書類」シート=「リスト」シート
'Sheets("書類").Cells([書類の行番号],[書類の列番号]) = Sheets("リスト").Cells(i,[リストの列番号])
Sheets("書類").Cells(1, 2) = Sheets("リスト").Cells(i, 2)
Sheets("書類").Cells(3, 5) = Sheets("リスト").Cells(i, 3)
Sheets("書類").PrintOut
i = i + 1
Loop Until Sheets("リスト").Cells(i, 1) = ""
End Sub
i = 2
Do
'この下の部分を書き換えて使います。
'「書類」シート=「リスト」シート
'Sheets("書類").Cells([書類の行番号],[書類の列番号]) = Sheets("リスト").Cells(i,[リストの列番号])
Sheets("書類").Cells(1, 2) = Sheets("リスト").Cells(i, 2)
Sheets("書類").Cells(3, 5) = Sheets("リスト").Cells(i, 3)
Sheets("書類").PrintOut
i = i + 1
Loop Until Sheets("リスト").Cells(i, 1) = ""
End Sub
[ 2011年2月7日 | カテゴリー: Excel | タグ: VBA , 差し込み印刷 ]
« 3DS本体と同日に発売されるゲームソフト | ショットノートとCamScannerを比較 »
コメントを残す