• 締切済み

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% (836/1606)
回答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 条件が明確になれば、手助けしてくれる方がいると思います。