Excel VBA 質問スレッド №2049 (解決済)
別シートからVLOOKUPでデータ検索→直接印刷の繰り返し
投稿者 : はいちゅう 投稿日時 : 2024/11/26(Tue) 15:38:09 OS : 未指定 EXCEL : 未指定
<売上集計表>
A B C D E
得意先コード 得意先名1 取引合計 値引額 伝票番号
4102 山田太郎 24,746 1,868 500154
4410 西保三郎 98,467 7,434 500155
<伝票>
A6セルに得意先コードが入力されると、
C3に伝票番号、C6に得意先名がでてくるようにしています。
G9には値引額が表示されます。
↑これを順番に検索→印刷→検索→印刷を<売上集計表>A列が終わるまで
繰り返し行いたいのですが、プリントアウトができません。
1行ずつ実行してもプリンターにデータは行くようなのでプリンター上でエラーが起きて
「異常終了」とプリンターに表示されて終わります・・・
何が良くないのか調べても調べても分かりません。
どなたか教えていただけませんでしょうか?
<売上集計表>
A B C D E
得意先コード 得意先名1 取引合計 値引額 伝票番号
4102 山田太郎 24,746 1,868 500154
4410 西保三郎 98,467 7,434 500155
<伝票>
A6セルに得意先コードが入力されると、
C3に伝票番号、C6に得意先名がでてくるようにしています。
G9には値引額が表示されます。
↑これを順番に検索→印刷→検索→印刷を<売上集計表>A列が終わるまで
繰り返し行いたいのですが、プリントアウトができません。
1行ずつ実行してもプリンターにデータは行くようなのでプリンター上でエラーが起きて
「異常終了」とプリンターに表示されて終わります・・・
何が良くないのか調べても調べても分かりません。
どなたか教えていただけませんでしょうか?
Sub VLOOKUP関数の差し込み印刷() Dim masterSheet As Worksheet Dim invoiceSheet As Worksheet Dim formula As String Dim i As Integer Dim j As Integer Dim rng As Range Dim ranges As Variant Dim colIndexes As Variant ' マスタシートと請求書シートを設定 Set masterSheet = ThisWorkbook.Sheets("売上集計表") Set invoiceSheet = ThisWorkbook.Sheets("伝票") ' VLOOKUP設定用の範囲とカラムインデックス ranges = Array("C6", "G9", "C3") colIndexes = Array(2, 4, 5) ' ループでA2からA4までのセルをB1に設定し、VLOOKUP関数を設定 For i = 2 To 3 invoiceSheet.Range("A6").Value = masterSheet.Cells(i, 1).Value For j = LBound(ranges) To UBound(ranges) Set rng = invoiceSheet.Range(ranges(j)) If j >= 3 Then '条件付きのVLOOKUP関数の設定 formula = "=IF(LEN(VLOOKUP($A$6&, 売上集計表!$A:$E, " & colIndexes(j) & ", FALSE)) > 0, VLOOKUP($A$6, 売上集計表!$A:$E, " & colIndexes(j) & ", FALSE), """")" Else '単純なVLOOKUP関数の設定 formula = "=VLOOKUP($A$6," & masterSheet.Name & "!$A:$E," & colIndexes(j) & ",FALSE)" End If rng.formula = formula Next j ' プリントアウト(直接印刷) With invoiceSheet.PageSetup .FitToPagesWide = 1 ' ページ幅を1ページに設定 .FitToPagesTall = 1 ' ページ高さを1ページに設定 End With invoiceSheet.PrintOut Next i End Sub
スポンサーリンク
[返信 1] Re : 別シートからVLOOKUPでデータ検索→直接印刷の繰り返し
投稿者 : ピロリ 投稿日時 : 2024/11/26(Tue) 20:58:31
■[質問] はいちゅうさん(2024-11-26 15:38:09)の記事
> 1行ずつ実行してもプリンターにデータは行くようなのでプリンター上でエラーが起きて
> 「異常終了」とプリンターに表示されて終わります・・・
プリンタ上はエラーですが、マクロの実行自体は正常に終了する訳ですよね。
私の環境では(自宅(EPSON)でも 会社(RICOH)でも)ご提示のコードで2名分の伝票?が印刷できてます。
そのプリンタのマニュアルに、「異常終了」を表示する要因が記載されていないのでしょうかね?
期待した回答でなくて、すいませんけど・・・
■[質問] はいちゅうさん(2024-11-26 15:38:09)の記事
> 1行ずつ実行してもプリンターにデータは行くようなのでプリンター上でエラーが起きて
> 「異常終了」とプリンターに表示されて終わります・・・
プリンタ上はエラーですが、マクロの実行自体は正常に終了する訳ですよね。
私の環境では(自宅(EPSON)でも 会社(RICOH)でも)ご提示のコードで2名分の伝票?が印刷できてます。
そのプリンタのマニュアルに、「異常終了」を表示する要因が記載されていないのでしょうかね?
期待した回答でなくて、すいませんけど・・・
[返信 2] Re : 別シートからVLOOKUPでデータ検索→直接印刷の繰り返し
投稿者 : はいちゅう 投稿日時 : 2024/11/27(Wed) 09:23:23
■[返信 1] ピロリさん(2024-11-26 20:58:31)の記事
ご返信ありがとうございます!
そうなんですね・・・試して頂いてありがとうございます(T_T)
毎月このような処理が必要になるので
先月別のブックで作成していてそれは正常に動くのですが
今月分を作成するのに、先月分のマクロモジュールを別ブックにコピーしたところ
質問のような状態になってしまいました・・・
プリンターのエラーコードたしかに!と思って調べてみたのですが
原因→アプリケーション側のプリントデータそのものに不正なパラメーターが含まれている、もしくはプリントデータと印刷設定に不整合が生じている可能性があります。
処置→アプリケーション側のプリントデータと印刷設定を確認し、もう一度プリントを指示してください。
と出てきました・・・。
データはPC本体に入っていますし、再起動してみたりしましたが変化が見られず・・・(T_T)
■[返信 1] ピロリさん(2024-11-26 20:58:31)の記事
ご返信ありがとうございます!
そうなんですね・・・試して頂いてありがとうございます(T_T)
毎月このような処理が必要になるので
先月別のブックで作成していてそれは正常に動くのですが
今月分を作成するのに、先月分のマクロモジュールを別ブックにコピーしたところ
質問のような状態になってしまいました・・・
プリンターのエラーコードたしかに!と思って調べてみたのですが
原因→アプリケーション側のプリントデータそのものに不正なパラメーターが含まれている、もしくはプリントデータと印刷設定に不整合が生じている可能性があります。
処置→アプリケーション側のプリントデータと印刷設定を確認し、もう一度プリントを指示してください。
と出てきました・・・。
データはPC本体に入っていますし、再起動してみたりしましたが変化が見られず・・・(T_T)
[返信 3] Re : 別シートからVLOOKUPでデータ検索→直接印刷の繰り返し
投稿者 : ピロリ 投稿日時 : 2024/11/27(Wed) 18:53:37
■[返信 2] はいちゅうさん(2024-11-27 09:23:23)の記事
> 毎月このような処理が必要になるので
> 先月別のブックで作成していてそれは正常に動くのですが
> 今月分を作成するのに、先月分のマクロモジュールを別ブックにコピーしたところ
> 質問のような状態になってしまいました・・・
今月用のブックへ、先月のブック内のソースコードを持ってきた(コピペした)ってことですかね。
先月のブックをコピーして今月用のブックとし、今月の売上データを入力(コピペ)すべきなのでは。
要は、ソースコードのコピペではなく、データ側をコピペするってこと。
まずは、それで印刷が復活するか確認してみてはいかがでしょう。
個人的には、ファイル選択ダイアログを使って、印刷したい月のブックを選択。
その月の売上データを「売上集計表」シートへ取得し「伝票」シートを介して印刷って感じでしょうか。
毎月ブックが増えていくのなら、マクロブックとデータブックは分離した方が良いと思いますが・・・
■[返信 2] はいちゅうさん(2024-11-27 09:23:23)の記事
> 毎月このような処理が必要になるので
> 先月別のブックで作成していてそれは正常に動くのですが
> 今月分を作成するのに、先月分のマクロモジュールを別ブックにコピーしたところ
> 質問のような状態になってしまいました・・・
今月用のブックへ、先月のブック内のソースコードを持ってきた(コピペした)ってことですかね。
先月のブックをコピーして今月用のブックとし、今月の売上データを入力(コピペ)すべきなのでは。
要は、ソースコードのコピペではなく、データ側をコピペするってこと。
まずは、それで印刷が復活するか確認してみてはいかがでしょう。
個人的には、ファイル選択ダイアログを使って、印刷したい月のブックを選択。
その月の売上データを「売上集計表」シートへ取得し「伝票」シートを介して印刷って感じでしょうか。
毎月ブックが増えていくのなら、マクロブックとデータブックは分離した方が良いと思いますが・・・
[返信 4] Re : 別シートからVLOOKUPでデータ検索→直接印刷の繰り返し
投稿者 : はいちゅう 投稿日時 : 2024/11/29(Fri) 13:11:36
B5で印刷したかったのですが、一度A4に設定したら印刷できたので、その後まだB5に設定したら印刷できました・・・!
ありがとうございます!
B5で印刷したかったのですが、一度A4に設定したら印刷できたので、その後まだB5に設定したら印刷できました・・・!
ありがとうございます!
当掲示板について
- Excel VBA に関する掲示板です。Excel VBA に関する質問や疑問、それに対する解決方法など気軽に投稿してください。
- 記事内ではHTMLのタグは使用できません。
- 記事は一度投稿すると修正できません。内容を訂正したい場合は返信で対応してください。
- Sub〜End Sub、Function〜End Function は自動的にプログラムコードとみなし、枠で囲って見やすくします。
- Excel VBA とは関係ないことや、他人が不快に思うようなことなど、管理人が適当でないと判断した記事は削除する場合があります。
スポンサーリンク
返信入力フォーム
( 処理日時 : 2024-12-07 23:07:04 )