• 締切済み

エクセルによる流し込み印刷をしたい。

今現在、 ”リスト”シートに個人リストがあり、VLOOKUPを使用し A列に「1」を入力するとその行の個人データが ”カード”シートにレポート(個人カード)として出るようになっております。 ”リスト”シートのA列に「1」入力、”カード”シートを印刷 ↓ ”リスト”シートのA列の「1」を消して一段下に「1」入力、”カード”シートを印刷 これを繰り返していますが、 ”カード”シート内に、「何行から何行までを印刷する」マクロを作成したいのです。 A6に開始行を入力、A7に修了行を入力すると流し込み印刷が出来るようになりたいのです。 VBA初心者です。 恥ずかしいような質問ですが、よろしくお願いします。

みんなの回答

  • hige_082
  • ベストアンサー率50% (379/747)
回答No.1

質問の回答をそのまますれば Sub test() Dim i As Integer Dim pStart As Integer, pEnd As Integer pStart = Worksheets("カード").Range("A6").Value pEnd = Worksheets("カード").Range("A7").Value For i = pStart To pEnd Worksheets("リスト").Range("A:A").ClearContents Worksheets("リスト").Cells(i, 1).Value = 1 Worksheets("カード").PrintOut Next i End Sub のようになります しかし、次のように変更することにより もっと使いやすくなるのではと思います リストシートのA列に連番を振ります カードシートのA5をリスト表示番号とし VLOOKUP関数を一部変更します 現在は =VLOOKUP(1,リスト!$A$1:$F$20,2) こんな感じで使用されているのではと思います =VLOOKUP($A$5,リスト!$A$1:$F$20,2) この様に変更すれば、今までの作業が効率がよくなります 今までは リストシートに移動し、1を消して、1を入力して、カードシートに戻って、印刷の繰り返しでしたよね 変更後は A5に印刷したいリストの番号を入力、印刷の繰り返しで済みます さらに、A6開始リスト番号、A7終了リスト番号にして 下記のマクロを使用すれば連続印刷も出来ます Sub 変更後test() Dim i As Integer Dim pStart As Integer, pEnd As Integer pStart = Worksheets("カード").Range("A6").Value pEnd = Worksheets("カード").Range("A7").Value For i = pStart To pEnd Worksheets("カード").Range("A5").Value = i Worksheets("カード").PrintOut Next i End Sub 如何でしょう?

ochiko02
質問者

お礼

回答していただいてたのに、お礼が遅くなり申し訳ありません。 変更後Test、すごくいいです。 改良版まで作っていただいて、本当にありがとうございました。

関連するQ&A

  • エクセル VBAで差込印刷の指定方法を教えてください。

    こんにちは。大変お世話になっています。 エクセルVBAを使って差込印刷がしたいのです。 1000位あるレコードの中から、これとこれとこれ・・・というふうに選んで印刷させたいのです。 VLOOKUP関数を使わない方法で、ずっと以前にやったことがあるのですが、忘れてしまいました。 「aiu」というシートにリストがあるとして、転機して印刷したいフォーマットがあるシートを「kakiku」とします。 「aiu」のa列に数字の「1」が入力されてあれば、その行が対象となり、印刷が開始される、といったものです。 「kakiku」のai セルに、「aiu」のg列のデーターを入れたい場合、 n=worksheets("aiu").cells(i+1,2)=1then worksheets("kakiku").range("a1")=worksheets("kakiku").cells(i+1,7) このように書いたと思うのですが・・・動きません。 最初の1行になにか問題がありそうな気がするのですが・・・。 すみません、よろしくお願いします。

  • エクセル 関数 ISERROR VLOOKUP

    エクセル関数でご教授お願いします。 今「LIST」シートのA列に品番、B列に単価が入力されています。 これを「入力」シートのA列1行目に品番を入力して、B列1行目に単価を引っぱってくる関数を作りました。 以下関数です。(「入力」シートのB列の関数です) =IF(ISERROR(VLOOKUP(A1,LIST!$A$1:$B$3,2,FALSE)),"品番ミス",VLOOKUP(A1,LIST!$A$1:$B$3,2,FALSE)) 品番が間違っている場合は”品番ミス”と入力されます。 この状態で問題なのは、入力シートのA列に何も入力されていない時に、B列に品番ミスと入ってしまう事です。 何とか、空白にしたいのですがいい方法はありませんでしょうか?

  • エクセルで流し込み印刷したいのですが

    エクセル2000とエクセル2002を持っています。 sheet1には実際に印刷したいレイアウトのフォームがあり、sheet2に顧客一覧がある場合、sheet2の各行をsheet1に流し込みながら印刷することはできないでしょうか。 sheet1は契約書の雛形で1件1枚の単票となっています。 sheet2は、列A.ID、列B.会社名、列C.担当者名、列D.契約開始日、列E.契約完了日、列F.・・・・となっていて、 各列の内容をsheet1の所定の位置に配置して複数枚一度に印刷したいわけです。 毎月の作業なので簡略化したいのです。 エクセルで出来るのか、またはもっと簡単に実現する方法を教えていただけると助かります。 ACCESSやWORDも持っています。 よろしくお願いします。

  • Excelをデータベースのように使用した場合 データの抽出

    Excelをデータベースのようにして使用している場合について教えて欲しいことがあります。  ・Sheetを2つ作成したとします。  ・Sheet1はたくさんのデータが入っているシートです。  ・Sheet1の名前を仮に『Data』とします。  ・Sheet2はSheet1から必要なデータを抽出してきて並べるシートです。  ・Sheet2の名前を仮に『Report』とします。  ・『Data』のA列には1~200までの数字が入力されています。  ・その数字は ランダムである上に 重複していることもあります。  ・例えばA1には「1」が入力されていて A2には「2」が入力されています。  ・しかし その後A3にもA4にもA5にも「2」が入力されています。  ・同様にA6~A15までは「3」が入力されているのです。  ・このようにA列の数字は 同じ数字が何度も重複しており その重複には規則性はありません。  ・『Report』シート上で『Data』シートからデータを抽出したいのですが A列に「1」と入力されているデータだけを取り出すのなら「VLOOKUP」でもできますよね・・・・  ・しかし A列に「2」と入力されているデータを「VLOOKUP」関数で選んでも その先頭行のデータしか読み込んできません。  ・『Data』シートのA列に入力している数字から 必要な数字が入力されている行のデータだけを 全て『Report』シートに並べようとした場合 手作業で行うとすると・・・ 『Data』でA列が「1」のデータだけを選び,それを『Report』シートに貼り付ける。次は「2」で実行する。・・・・・という作業を200回繰り返すことになりますが 簡単に行うにはどのようにすればいいのでしょうか? マクロについては あまり詳しくないので できれば関数を使いたいのですが 無理でしょうか? マクロを使うのであれば 分かりやすく教えていただきたいのですが・・・ 勝手なお願いで申し訳ありませんが よろしくお願いします。

  • エクセルで順番に印刷したい

    シート1に住所録があり、そこへ入力されている行の値をシート2の封筒の様式にコピーして表示してあります。 シート2ではVlookUPで「1」と入力すると1行目の住所録データ、「2」で2行目の住所録データが表示されるようにしてあります。 現在の使い方だと、シート1の入力データが30行あった場合、「1」→「印刷」、「2」→「印刷」、「3」→「印刷」・・・と30回繰り返さなくてはなりません。 これを一発でできる方法をお教えください。

  • 連続で印刷 VBA エクセル

    ・シート1のA列に番号が入力されており、B列以降に情報が入力されています。 ・シート2のA1セルに上記に番号を入力すると、B列以降の情報がフォーマットにあわせて表示する様になっています。 ・印刷する場合、A列に番号を入力→印刷を繰り返します。 ○コレをVBAで自動化できないでしょうか?

  • Excel マクロ・VBAの印刷方法について

    急ぎの回答です!! 関数式の入っているセル(空白表示)を印刷範囲に入れずに印刷する方法を教えてください。 別シートのデータを関数で引っ張てきてひな形のセルに表示しています。 行→$1:$6 列→$A:$Agは印 刷タイトルに設定。 A列7行目から1.2.3... とNo.が入っており、 B.~J. 列7行目からはデータが最終の50まで入力してます。( 関数式=IF(COUNTIF(コード,$S$1)<ROW(A1),"",OFFSET([元リスト.xlsx]商品一覧!A1,MATCH($S$1,コード,0),1)) ) K.~AG.列7行目からは書式データ(同じ文面の繰り返です。最終の50まで入っています)B~J列の7行目から関数(データ)=IF(COUNTIF(コード,$S$1)<ROW(A1),"",OFFSET([元リスト.xlsx]商品一覧!A1,MATCH($S$1,コード,0),1))をコピぺと一部を変更しセルへ入力して別シートからデータを引っ張てきてます。この関数だと該当する値がない場合はセルは表面上は空白セルに見えますが、セルには数式が入っている状態です。セルデータの最終行を習得し印刷に設定すると関数入力されているところで最終行と認識し、関数式を入れている50行まで印刷してしまいます。 したいことは、データが表示されている30行までなら30行まで印刷という感じにはできないでしょうか? シートを様式一枚ずつ作成しており、1ブックには20シートずつ保存しています。そしてこのブックはおよそ30ブックあります。 1ブック内の全てのシート(20シート)に反映できるようしたいです。 ※30行までデータが表示されている場合、C~Jには途中とちゅうで空白欄がありますが、B列は30行全てデータの表示(該当する場合)されます。 Excel マクロ VBA に詳しい方回答お願いします! B7からはB56まですべて関数式を入力しています(最大50までデータが表示されるように) シート枚数と、元のデータ数が行で7000程とかなり多く、このような関数式になりました。できればマクロ、VBA等での処理が望ましいです(時間がないので><)よろしくお願いいたします!!!

  • VLOOKUPで印刷開始と終了を指定しマクロ登録

    シート1のG6にVLOOKUPの検索値       C4にVLOOKUPを設定 シート2のA1~B10にVLOOKUPの範囲を設定       A列に1~10の番号 があります。 Inputboxを使用して、1~10の番号の範囲を印刷開始番号と終了番号を入力し、 印刷範囲を自由に変更できるようにしたいと考えています。 VBAで登録したいのですが、どういったものになるのでしょうか。 宜しくお願いします。

  • Excel VLOOKUPをVBAでやりたいのですが、分からなくて困っ

    Excel VLOOKUPをVBAでやりたいのですが、分からなくて困ってます。 Sheet1のC列2行目行こうにSheet2のI列のデータを取得し (A列にデーターが入っている分、(時と場合により表示数が違う為)) なおかつ Sheet1のD列2行目以降にB-Cの差し引きをおこなう 以上のことをSheet1をアクティブにした時VBAでおこなうには、? 教えて下さい。宜しくお願い致します。

  • エクセル 関数を自動的に入力するVBAで困っています

    VBA初心者です。 エクセルの入力シートで行ごとにデータを下記のように入力しています。      A      B       C 1   日付    品番     商品 2   10/25    10     りんご 3   10/26    20     みかん 4 5 6 2行目から順にデータを入力すると自動的にC列にVBAで VLOOKUP関数をセットして商品を検索したいのですが 上手くできませんでした。 教えてください。よろしくお願いします。