- ベストアンサー
VLOOKUPとVBAを使っての複数のデータの一括印刷について
- VLOOKUPとVBAを使って複数の店舗データを一括で印刷する方法を教えてください。
- エクセルのシート2には各店舗のデータがあり、シート1に表紙を作成しました。VLOOKUPを使用して店番号を入力すると、該当店舗のデータを引き込むようになっています。一度に複数の店舗を印刷する方法を知りたいです。
- 複数の店舗の番号を一括で入力し、VLOOKUPとVBAを使用してそれらの店舗の売上データを一括で印刷する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Sheet1のA1に数字を入力すると、Sheet1に印刷データが作られる。 これを今は手動で印刷している。 というなら、こんなのはどうでしょうか? まず、sheet3を用意します。 Sheet3にボタンを作ってください。 下記をSheet3のVBAにコピーしてください。 Option Explicit Private Sub CommandButton1_Click() Dim d() As String Dim i As Integer d = Split(CStr(Range("A1")), ",") For i = 0 To UBound(d) Sheet1.Range("A1") = d(i) Sheet1.PrintOut '確認して印刷する場合は、Sheet1.PrintPreviewに変更してください Next End Sub sheet3のA1に1,4,6と入力してボタンを押すと、1,4,6を印刷します。
その他の回答 (2)
- fumufumu_2006
- ベストアンサー率66% (163/245)
http://allabout.co.jp/computer/msexcel/closeup/CU20070105A/index2.htm とか http://www.excel.studio-kazu.jp/lib/e4a/e4a.html とかを参考にボタンが押された時に実行されるコードを作ってください。 バージョンによって若干違うと思いますが、 Private Sub ???_Click() End Sub になります(???の部分はバージョンやボタンを作る順番などで違います)ので、この間に Dim r As Integer For r = 1 To Sheet3.Cells(Sheet3.Rows.Count, 1).End(xlUp).Row Sheet1.Range("A1") = Sheet3.Cells(r, 1) Sheet1.PrintOut Next を入れてください。 Private Sub ???_Click() Dim r As Integer For r = 1 To Sheet3.Cells(Sheet3.Rows.Count, 1).End(xlUp).Row Sheet1.Range("A1") = Sheet3.Cells(r, 1) Sheet1.PrintOut Next End Sub の状態にしてください。 p.s. 前の物はチェックで、Sheet1.PrintPreview にしていたのでプレビューになりましたが、Sheet1.PrintOut で、即印刷します。
お礼
ありがとうございます!! 印刷に成功しました!! 何もわかっていない私に丁寧に教えていただいてありがとうございました。
- fumufumu_2006
- ベストアンサー率66% (163/245)
>うまく動かないのですが・・・ ボタンを押しても反応しないのでしょうか? コードを入れたウインドウのは、左側のプロジェクトウインドウのSheet3(Sheet3)をダブルクリックして表示されるウインドウでしょうか? 「???-Sheet3(コード)」(???はブック名)と言う名前のウインドウだと思います。 次に、 Private Sub CommandButton1_Click() の行にカーソルを移動して、[F8]を押してください。 1行づつ実行します。 For i = 0 To UBound(d) から、 End Sub へ飛ぶようなら、Sheet3のA1の値がおかしいと思います。 1,2,3(半角で)となっているでしょうか? 直接だと動くが、ボタンだとだめなら、ボタンの名前が違っているかもしれません。 Sheet3のコマンドボタンをダブルクリックしてください。 の行にカーソルを移動して、[F9]を押してください。 そこに表示される Private Sub ????_Click() End Sub の間に回答の Dim d() As String から Next を入れてください。 Option Explicit Private Sub CommandButton1_Click() Dim d() As String Dim r As Integer For r = 1 To Sheet3.Cells(Sheet3.Rows.Count, 1).End(xlUp).Row Sheet1.Range("A1") = Sheet3.Cells(r, 1) Sheet1.PrintPreview Next End Sub >A1=1 >A2=4 >のように行ごとに入れていって印刷する方法はありますでしょうか? sheet3のA1、A2・・・を、sheet1のA1に入れてからsheet1を印刷します。 Option Explicit Private Sub CommandButton1_Click() Dim r As Integer For r = 1 To Sheet3.Cells(Sheet3.Rows.Count, 1).End(xlUp).Row Sheet1.Range("A1") = Sheet3.Cells(r, 1) Sheet1.PrintPreview Next End Sub
お礼
ありがとうございます。 デバックでプレビューはうまくいくのですが、 ボタンを押すとマクロがありませんというエラーになります。 教えていただいたとおり、シート3のところに入力はありました。 あと、何度も申し訳ないのですが、プレビューせずに印刷する方法はありますか?
お礼
早速ありがとうございます。 私の貼り付け方が悪いのでしょうか・・・ うまく動かないのですが・・・ あと、贅沢を言って申し訳ないのですが、 A1=1 A2=4 のように行ごとに入れていって印刷する方法はありますでしょうか?