• 締切済み

Excel VBAで VLOOKUPの検索値を次々と他のセルから自動で入力し連続印刷する方法を教えてください。

請求書のA1を検索値として、そこにNo.を入力するとVLOOKUPで名前・金額などが入るようになっているのですが、A1に毎回手動で入力して印刷しているので大変です。マクロで連続印刷できるとうかがったので教えてください。 (VBA素人でしかも初質問なので説明べたですみません。) 請求書のシートのA1にNo.を入れて、シートが完成します。 範囲は隣のシートです。 No.は連番ではありません。わかりやすいように請求書シートの印刷範囲外のP列に200個ほどコピーしています。 P3のセルに1番目の検索値の値が入っていて、それをA1に自動で入力し印刷、次にP4の値をA1に自動で入れて印刷。次にP5..というようにループというのでしょうか、ボタンひとつで連続印刷できるようにしたいのです。 どうぞ宜しくお願いいたします。

みんなの回答

  • minosennin
  • ベストアンサー率71% (1366/1910)
回答No.2

万年ビギナーですが、ご質問と同じことを2年ほど前にVBA化しました。 方法は、A88No8 さんと同じく、連続番号を使用し、開始と終了の番号を指定するやり方です。 なお、連続番号はとなりのsheetの最左端に配置しています。 間違えないようコードは原文のままです。 Sub 連続印刷() ' ' 連続印刷 Macro ' マクロ記録日 : 2007/1/29 ユーザー名 : xxxx ' Range("A18") = Range("BC3") Dim i As Integer For i = Range("BC3") To Range("BC4") ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True Range("A18") = Range("A18") + 1 Next i End Sub A18 : 現在の連続番号 BC3 : 開始番号 BC4 : 終了番号 ご参考になれば。

kekotann
質問者

お礼

ありがとうございます。 徹夜の作業がつづき、いただいた回答のとおり試すことがまだできていません。 年末年始にやってみませす。感謝します。 ・・ポイントはどうやってつけるんでしょう。。。足りない部分があったらいってください。

  • A88No8
  • ベストアンサー率52% (834/1602)
回答No.1

kekotannさん、こんにちは お願いするにしろ、下記の3点が不明と思います。 (1)「請求書のA1」のあるシートの名前 (2)「範囲は隣のシート」の「範囲」の意味(そこに何がある?)とシートの名前 (3)「請求書のA1」のあるシートに存在するP列の範囲(P4からP????まで) 追加仕様として、印刷を失敗し、部分的にやり直すために印刷を開始するP列初めの行番号とP列終わりの行番号をどこかに指定出来た方が便利かも。 マクロそのものは、例えばP4の手前のO4(オー4)に「1」、O5(オー5)に「2」、O6(オー6)..以下同じようにPの最後まで番号が振ってあり、O1(オー1)を作業場所として使い、O2(オー2)に印刷開始番号、O3(オー3)に終了番号があるとする。  そして「請求書」シートにすべての情報があるとしてA1に =VLOOKUP($O1,$O4:$P200,2,0) とおいて、 マクロを以下のようにすれば、出来ないこともないような.. Sub 請求書帳票印刷()   Range("$O$1") = Range("$O$2")   Do While Range("$O$1") <= Range("$O$3")     Sheets("請求書").PrintOut     Range("$O$1") = Range("$O$1") + 1   Loop End Sub 条件が明確になれば、手助けしてくれる方がいると思います。

関連するQ&A

  • エクセルマクロ 印刷「105~110」などの自動連続印刷の仕方

    エクセルです。今、Vlookup関数で別のシートから呼び出して表示しています。例えば、シート1のA4に「101」と入力するとシート2を参照してデータをもってくるようになってます。 そして、102、103~と打つことによって変化していきます。 また、 101~131まで、一気に自動印刷するマクロはできました。 同様に、 201~231まで、一気に印刷するマクロはできました。 そこで、教えて欲しいのです。 105~110など途中のところを連続印刷するためのマクロはどのようになりますか。 もちろん、105~110などと打つセルをつくる必要はあると思いますが・・・。お願いしますm(_)m

  • 連続印刷の方法です

    教えてください。 シート1のA1の値が1~50と変化します。 それに応じて、B1の値が りんご、みかん、梨などと変化します。 シート2以後のシート名は、B1と同じ名前がつけてあります。 シート1のデータは、VLOOKUPでそれぞれのシートに入力されます。 そこで、シート1にあるコマンドボタンを押すと、B1と同じ名前の シートが1番~50番まで連続印刷できるようにしたいのです。 分かりにくかったですか。説明が下手ですみません。 よろしくお願いします。

  • VLOOKUP式の範囲の部分に他のセルから入れ込みたい

    B列に=VLOOKUP($A1,'18-1'!$B$5:$N$80,4,FALSE)) という数式があってA列の値で18-1シートを検索してVLOOKUPすることになっています。 そして18-1の部分は18-2、18-3、18-4…と変わっていくんですがC列に範囲の'18-1'!$B$5:$N$80の部分を入力してB列の数式に入れ込むことは出来るでしょうか? =VLOOKUP($A1,?????????,4,FALSE)) このような感じで…

  • VLOOKUPの検索範囲を入力に応じて変えたい

    Excel2007を使用しています。 個人別で経費データシートを入力し、全員の当月分データを別シート1枚にまとめようとしています。 当月分データシートJ2番地に指定番号を入力すると、個人シートからデータを参照してくる形を取りました。 =IF($J2="","",VLOOKUP($J2,社員名!$A$5:$I$2004,3,0)) この数式内検索範囲を、指定番号に応じてその該当する社員名に自動で変えることは可能でしょうか? ・J2 山田氏用指定番号  =IF($J2="","",VLOOKUP($J2,山田!$A$5:$I$2004,3,0)) ・J2 佐藤氏用指定番号  =IF($J2="","",VLOOKUP($J2,佐藤!$A$5:$I$2004,3,0)) 指定番号に応じて検索範囲の個人シートも変わり、それぞれのデータを拾ってくるようにしたいです。 もしくはもっと別に良い方法がありましたら教えていただきたいです。 質問がわかりづらかったら申し訳ありません。 上記関数もネット検索を繰り返しながらといったレベルです。

  • EXCEL VBA VLOOKUPの様な検索したい

    お世話になります。 VBAを使ってVlookupのような動きをする検索を実施したいのです。 添付図のようにsheet1に基本データが入っています。 [検索]ボタンをクリックしたらsheet1の商品番号をキーにして、sheets2を参照してsheet1の区分にA-Dの値を挿入したいと思います。 sheet1、sheet2ともにデータ量が可変です。 どなたかご教授いただけますでしょうか? お忙しいところ恐縮ですがよろしくお願い致します。 環境 WinsowsXP SP3

  • Excelで、セルを削除した際に、自動的に繰り上がるセルの値を入力させ

    Excelで、セルを削除した際に、自動的に繰り上がるセルの値を入力させたい。 シート1にずらーっと名前のリストを表示させています。その名前を、シート2で拡大して表示させる為に、シート2に大き目のセルを結合させて作成し、当該のセルに「=シート1!A1」との数式を入れました。 この段階では、シート1のA1の値が、シート2に拡大表示されている状態となります。 拡大表示させた物を印刷する事が目的な為、この状態を印刷した後に、シート1でA1のセルを削除しました。自動的にシート2には、繰り上がったシート1のA1になるはずの次の値(「削除する前はA2)が繰り上がって表示されるかと思っておりましたが、「#REF!」の表示が出てしまいます。 設定か何かで自動的に繰り上がった値が表示される方法はありませんでしょうか。 ※ちなにみ、この表示される値は数式等ではありません。

  • エクセルのVLOOKUPの印刷方法について

    エクセルのVLOOKUPの印刷方法についてですが、シート(1)(データ1~100)をシート(2)(個表)にVLOOKUP(1~100までの個表を番号入力でデータを表示する)で作成したあと1~100までの個表をいっきに印刷をする方法を教えてください。現状は個表の表は1つだけ作成していますので、1~100までの番号を随時入力して印刷しなければなりません。ご回答よろしくお願いします。

  • 連続で印刷 VBA エクセル

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

  • エクセルVBAでVLOOKUP自動参照表示

    計画のファイルがあります。 例えば、"テーブル"シートのA列に品物A、品物B、品物C・・・、と入力されていて、B列にはA列の品物に対応して、付属A、付属B、付属Aなどと入力されているとします。実際は、品物数は数千種類あります。(この例の場合は、品物Aと品物Cは同じ付属を使う) "計画"シートには、B列にデータの入力規則のリストより、品物Aや品物B・・・などを選択します。 現在は、例えばB3:B15までが作業者Aの入力範囲としていたとすると、B5:B15まですべて入力規則のリストになっており、B3に品物Aを選んだらその下のB4に同じくリストから付属Aを選んで入力している状態です。(他の列にVLOOKUP関数を設定すると簡単にできると思いますが、これ以上列を追加表示すると印刷時縮小されすぎて却下です) 作業者Aの入力範囲のどこにで品物の選択をできるようにしておきたいので、入力範囲にはすべてリストが設定されており、数式を入れることはできません。 VBAでVLOOkUP関数を使えばできそうですが、リストから"テーブル"シートのA列の品物を選択したら、その下のセルにB列より参照して表示させればいいのでしょうが、やり方が分かりません。 作業者Aの本日の計画がB3:B15、作業者Bの本日の計画がB17:B29、作業者Aの翌日の計画がG3:G15、作業者Bの本日の計画がG17:G29とすると、その範囲に入力したら自動で参照して表示させ、また"テーブル"シートのB列が空欄なら何も表示しないようにさせるにはどうしたらよろしいでしょうか? たびたびすいませんが、どうやったらよろしいでしょうか?エクセル2013です。

  • Excel VBA VLOOKUP の書き方

    次の関数をVBAで書くにはどのように記述すればよいでしょうか? =IF(ISNA(VLOOKUP(B2,Sheet2!A2:B9,2,FALSE)),"",VLOOKUP(B2,Sheet2!A2:B9,2FALSE)) よろしくお願いします。

専門家に質問してみよう