• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルのマクロの連続印刷で困っています。)

エクセルのマクロで連続印刷で困っている

このQ&Aのポイント
  • エクセルのマクロで通知書を指定した番号~番号までを連続印刷する際、印刷結果が最初の番号は指定した番号まで印刷されて良かったのですが、次から最後までの番号の印刷が同じものが印刷されてしまい、どんどん増えていってしまっています。
  • いくつかの方法を試してみましたが、どこが間違えているのかがわからず、詳しい方に教えていただきたいです。
  • エクセルの構成は、シート1には通知書に印刷させる用のID管理用の一覧があり、指定された番号をシート2で読み込ませて表示させています。シート2ではVLOOKUPを使用し、1人分の情報だけを表示させています。

質問者が選んだベストアンサー

  • ベストアンサー
  • o_chi_chi
  • ベストアンサー率45% (131/287)
回答No.1

Worksheets("シート2").Select これが実行された時点で Range("通知書連続始め") はシート2を参照してしまいます。 Worksheets("シート1").Range("通知書連続始め") とするか start = Range("通知書連続始め") と変数を使用するとかしてみてください。

fumy231
質問者

お礼

ありがとうございます! できました! 本当に助かりました!>< 冷静に教えていただくと、なるほど「参照してしまう」ことが 原因ということもわかりました。 まだまだ初心者ですが、がんばって理解を深めていこうと 思います。 またご縁がありましたら教えていただけると嬉しいです。 本当にありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルのマクロを教えてください。

    マクロの初心者です。 特に変数が全く使えず、下記もどのように記載していいのかわからないため教えていただけないでしょうか。 ユーザーフォームのtextbox2に開始番号があります。 textbox3に本数があります。 sheet1のB12セルには開始番号が入ります。 開始番号から本数分+1したものを順番にセルに入っていくようにしたいです。 ただ、入れたいセルが横→左下(開始番号の列)→横→左下(開始番号の列)・・・としたいため、どのように書いていいのかわかりません。 地道に書くのであれば、下記のようになると思うのですが、変数を使って書く場合はどのようになるのか教えていただけないでしょうか。 Worksheets("Sheet1").Range("B12").Value = TextBox2.Value If TextBox3.Value = 2 Then Worksheets("Sheet1").Range("G12").Value = TextBox2.Value * 1 + 1 ElseIf TextBox3.Value = 3 Then Worksheets("Sheet1").Range("G12").Value = TextBox2.Value * 1 + 1 Worksheets("Sheet1").Range("B13").Value = TextBox2.Value * 1 + 2 ElseIf TextBox3.Value = 4 Then Worksheets("Sheet1").Range("G12").Value = TextBox2.Value * 1 + 1 Worksheets("Sheet1").Range("B13").Value = TextBox2.Value * 1 + 2 Worksheets("Sheet1").Range("G13").Value = TextBox2.Value * 1 + 3 ElseIf TextBox3.Value = 5 Then Worksheets("Sheet1").Range("G12").Value = TextBox2.Value * 1 + 1 Worksheets("Sheet1").Range("B13").Value = TextBox2.Value * 1 + 2 Worksheets("Sheet1").Range("G13").Value = TextBox2.Value * 1 + 3 Worksheets("Sheet1").Range("B14").Value = TextBox2.Value * 1 + 4 ・ ・ ・ End If

  • VBAで印刷処理の設定

    メインシートで、印刷ボタンを押した際に、 設定値に基づいて、条件分岐するには、どうすればいいでしょうか。 ご教授お願いいたします。 ★シート名 ・メインシート ・名簿 ・設定 の3つのシートがあります。 メインシートには、入力項目があります。 名簿には、 No. 会社名 担当 印刷 ・ ・ ・ のセルがあります。 印刷列は、 「0」or「1」の指定がされています。 0の場合は、印刷しない。 1の場合は、印刷する。 設定シートには、 項目 値 列があります。 項目1には、「プレビュー表示」があり、 値には、「プレビュー表示する」or「プレビュー表示しない」が 設定されます。 Sub 連続印刷() Dim i As Integer Dim LastRow As Integer Worksheets("メインシート").Select With Worksheets("名簿") LastRow = .Range("A65536").End(xlUp).Row For i = 2 To LastRow Range("A4").Value = .Range("A" & i).Value ' プレビュー表示分岐 With Worksheets("設定") ' Cells(行番号, 列番号) If Cells(2, 2).Value = "1" Then ' プレビュー確認 ActiveSheet.PrintPreview ElseIf Cells(2, 2).Value = "プレビュー表示しない" Then ' 確認なしで印刷 ActiveSheet.PrintOut Else ' プレビュー確認 ' ActiveSheet.PrintPreview MsgBox ("test") End If End With Next End With End Sub

  • エクセルで140人をマクロをつかって連続印刷?

    140人の個別IDがあります。それをVlOOKUPで参照して別のシートに引き出しています。一回一回、IDを入力しては印刷ボタンをクリックしてきました。140人を一度に印刷したり、10~40番までを指定して連続印刷したりするマクロを教えてください。

  • excelでマクロを使用した連続印刷について

    A2セルから通し番号、氏名、住所等のデータが入力されている「データ」シートがあり、 VLOOKUPを使用してB3セルに「データ」シートのA列にある「通し番号」を 入力すると氏名・住所等が反映される「印刷」シートがあります。 例えば「データ」シートのC列(住所)に「東京都」という文字列が 含まれている宛名のみを連続で印刷したい場合、 どのようなマクロになりますでしょうか? (マクロ内に「東京都」と指定する方法と、 シート内の特定セルに入力した文字列で指定する方法が ありますでしょうか?) wordでの差し込み印刷や、宛名ソフト等の使用は考えておりません。 よろしくお願いいたします。

  • マクロをすっきりさせたい・・・

    いつもお世話になっております。 下記、マクロを組んだのですが、 簡潔にまとめるには、どうしたら良いでしょうか・・・ 宜しくお願い致します。 Set 範囲 = Workbooks("A.xls").Worksheets("マスター").Range("A2:G4000") ThisWorkbook.Activate 列番号 = 7 検索値 = (Worksheets("B").Range("B24")) Range("D14").Value = WorksheetFunction.VLookup(検索値, 範囲, 列番号, False) Set 範囲 = Workbooks("A.xls").Worksheets("マスター").Range("A2:G4000") ThisWorkbook.Activate 列番号 = 7 検索値 = (Worksheets("B").Range("B25")) Range("D15").Value = WorksheetFunction.VLookup(検索値, 範囲, 列番号, False) Set 範囲 = Workbooks("A.xls").Worksheets("マスター").Range("A2:G4000") ThisWorkbook.Activate 列番号 = 7 検索値 = (Worksheets("B").Range("B26")) Range("D16").Value = WorksheetFunction.VLookup(検索値, 範囲, 列番号, False)

  • エクセルで変数が2つある連続印刷

    VBA初心者です。困っていますのでよろしくお願いします。 エクセルでVBAを使って,個人の成績個票を連続印刷する方法について教えてください。 一枚の用紙に,上半分は1組の生徒の個票を,下半分には2組の生徒の個票を連続的に印刷します。 「個票sheetセルE3」には1組の生徒番号を,「個票sheetセルE27」には2組の生徒番号を連続的に流し込み,VLOOKUP関数によって別sheetにある成績データを読み込んでいきます。 仮に2枚(1枚は「1組の1番の生徒(101)+2組の1番の生徒(201)」の個票,もう一枚は「1組の2番の生徒(102)+2組の2番の生徒(202)」の個票)を印刷するコードはどうすれば良いのでしょうか。 下のようなコードでは組み合わせ可能な4枚の個票が印刷されてしまいました。 VBAの専門家の方,ご助言いただければ幸いです。 Sub 一組二組印刷() '個票を印刷するマクロです Dim 番号一組 As Integer For 番号一組 = 101 To 102 Sheets("個票").Range("E3").Value = 番号一組 Sheets("個票").PrintOut Next 番号一組 Dim 番号二組 As Integer For 番号二組 = 201 To 202 Sheets("個票").Range("E27").Value = 番号二組 Sheets("個票").PrintOut Next 番号二組 End Sub

  • 連続印刷について

    顧客名簿を作成し連続印刷により、市販されているようなアドレス帳の レイアウトで印刷したいのですが、以下の様に13人分の印刷をすると 次の連続印刷では1つ繰り上がって、印刷されるだけとなってしまいました。 次ページの印刷からは、14行めから更にその次では28行目からと 印刷設定をしたいのですが、どうすれば宜しいのでしょうか? 別シートに印刷用のレイアウトをVLOOKUPで作成し、更に別シートで印刷設定を行っています。 初心者なりに見よう見まねで作ってみたのですが・・・・ 説明が下手で分かりにくく申し訳ありません。 護教授宜しくお願い致します。 Sub 連続印刷1() ' Dim mycounter As Integer Dim sita1 As Integer Dim migi1 As Integer mycounter = 1 sita1 = Sheets("設定").Cells(4, 2) migi1 = Sheets("設定").Cells(5, 2) For mycounter = 1 To 5 Sheets("顧客名簿").Select Range("O2").Value = Sheets("住所録").Cells(mycounter + 1, 1) Range("O6").Value = Sheets("住所録").Cells(mycounter + 2, 1) Range("O10").Value = Sheets("住所録").Cells(mycounter + 3, 1) Range("O14").Value = Sheets("住所録").Cells(mycounter + 4, 1) Range("O18").Value = Sheets("住所録").Cells(mycounter + 5, 1) Range("O22").Value = Sheets("住所録").Cells(mycounter + 6, 1) Range("O26").Value = Sheets("住所録").Cells(mycounter + 7, 1) Range("O30").Value = Sheets("住所録").Cells(mycounter + 8, 1) Range("O34").Value = Sheets("住所録").Cells(mycounter + 9, 1) Range("O38").Value = Sheets("住所録").Cells(mycounter + 10, 1) Range("O42").Value = Sheets("住所録").Cells(mycounter + 11, 1) Range("O46").Value = Sheets("住所録").Cells(mycounter + 12, 1) Range("O50").Value = Sheets("住所録").Cells(mycounter + 13, 1) Range(Cells(1, 1), Cells(sita1, migi1)).Select Selection.PrintOut Copies:=Sheets("設定").Cells(6, 2) Next ' End Sub

  • InputBoxの値で検索して転記するマクロ

    1.InputBoxを3回表示させます。 2.ユーザーに入力してもらいます。 入力できるのは半角英数字のみでそれ以外は エラーメッセージを出したいです。 3.1回目は18桁か22桁以外の場合、 2回目と3回目は4桁以外の場合はMsgBoxを表示して 再入力を促します。 4.InputBoxに入力された値の3個を連結した値で Sheet2のA列を検索して 合致したらその行のG列の値を見ます。 5.G列に"済"とあったら MsgBoxを表示して 中止するか継続するか判断します。 6.継続した場合 その該当行の各列の値をSheet1にそれぞれ転記します。 Sheet2の該当行のB列→Sheet1のセルB3 Sheet2の該当行のC列→Sheet1のセルC3 Sheet2の該当行のD列→Sheet1のセルD3 Sheet2の該当行のE列→Sheet1のセルE3 Sheet2の該当行のF列→Sheet1のセルF3 7.かつSheet2の該当行のG列に 済 と転記します。 すでに済が記入されている場合は上書です。 以下のように作成しましたがエラーで動かなくて動作確認が出来ません。 どう直せばいいのか教えてください。 イレギュラー時の対応処理が必要だとも思うのですが動作しない為 思いつきません。 記述が滅茶苦茶なのですがこれが限界です。申し訳ありません。 Sub 表示板作成() Dim 検索値1 Dim 検索値2 Dim 検索値3 Dim 検索値4 Dim 判定値 Dim 判断 Dim 記録 Dim 確認 検索値4 = 検索値1&検索値2&検索値3 Do 検索値1 = Application.InputBox("型番を入力してください") If Len(検索値) < 18 Then MsgBox "18桁未満です。再入力しますか?" Loop Else Exit Do '検索値2と3も上記と同じ記述をここへ入れる '(現在省略) End If 判定値 = Application.WorksheetFunction.VLookup(検索値4.Value, Worksheets("Sheet2").Range("A2:G10000"), 7, 0) If 判定値 = "済" Then 判断 = MsgBox("発行済みです。再度データ取得しますか?", vbYesNo) Else Select Case 判断 Case vbNo Exit Sub Case vbYes Range("B3").Value = Application.WorksheetFunction.VLookup(検索値4.Value, Worksheets("Sheet2").Range("A2:G10000"), 2, 0) Range("B4").Value = Application.WorksheetFunction.VLookup(検索値4.Value, Worksheets("Sheet2").Range("A2:G10000"), 3, 0) Range("B5").Value = Application.WorksheetFunction.VLookup(検索値4.Value, Worksheets("Sheet2").Range("A2:G10000"), 4, 0) Range("B6").Value = Application.WorksheetFunction.VLookup(検索値4.Value, Worksheets("Sheet2").Range("A2:G10000"), 5, 0) Range("B7").Value = Application.WorksheetFunction.VLookup(検索値4.Value, Worksheets("Sheet2").Range("A2:G10000"), 6, 0) End Select End If 記録 = Application.WorksheetFunction.VLookup(検索値4.Value, Worksheets("Sheet2").Range("A2:G10000"), 7, 0) 記録.Value = "済" 確認 = MsgBox("これは●●用です。いいですか?", vbYesNo) Select Case 確認 Case vbNo Exit Sub Case vbYes Call 印刷 End Select End Sub

  • エクセルで差込印刷をするマクロについて

    エクセルでSheet1のAに名前Bに学年が入っています。 Sheet2のY1にSheet1のAを、Y2にSheet1のBを差込印刷したいのです。 前の質問を見て名前だけの印刷は出来ましたが学年が上手くいきません。ぜひぜひお願いいたします。 学年の差込印刷が上手くいったときのマクロを記述します Sub Pri_Name() Range("A1").Activate Do While ActiveCell.Text <> "" Worksheets(2).Range("Y1").Value =ActiveCell.Text Worksheets(2).Range("A1:Z38").PrintOut ActiveCell.Offset(1, 0).Activate Loop End Sub

  • 連続印刷処理前に確認しOKしてから再開するマクロ

    連続印刷マクロを作成したのですが、印刷の手前で確認を入れたいので、その処理を教えてください。 エクセルの表は項目が14列あり、999行です。 印刷は、2種類のシートに分け印刷できるようになっているのですが、確認は1度だけを考えています。 Sub 印刷_Click() Worksheets("集計・印刷").Activate '作業シート名 Range("A2").Select '番号(001~999)をこの次の"A3"セルより転記される。 Do '↓ ※1度の作業で15個の番号を最大とします。 'アクティブセルを1つ下に移動 ActiveCell.Offset(1, 0).Select '1度の作業で15枚印刷する。 '空欄であれば、プログラムを終了する 'Trim関数は前後のスペースを消去する If Trim(ActiveCell.Value) = "" Then Exit Do End If '非表示セルは印刷の対象としない If ActiveCell.EntireRow.Hidden = False Then If ActiveCell.Offset(, 2).Value = "単品" Then 'C列で単品の判断をする。 With Worksheets("A") 'Aシートへ記入 .Range("C3").Value = ActiveCell.Offset(0, 0).Value '番号 .Range("L24").Value = ActiveCell.Offset(0, 2).Value '種類 .Range("F3").Value = ActiveCell.Offset(0, 3).Value '型式 .Range("C23").Value = ActiveCell.Offset(0, 4).Value '測定日 .Range("C24").Value = ActiveCell.Offset(0, 5).Value '製造日 .Range("C9").Value = ActiveCell.Offset(0, 6).Value 'ライン .Range("C10").Value = ActiveCell.Offset(0, 7).Value '担当 .Range("C7").Value = ActiveCell.Offset(0, 9).Value '外観 .Range("C8").Value = ActiveCell.Offset(0, 10).Value '気密 '繰返し処理をしているので一度に印刷される。 .PrintOut End With ElseIf ActiveCell.Offset(, 2).Value = "複数品" Then'C列で複数品の判断をする。 With Worksheets("B") 'Bシートへ記入 .Range("C3").Value = ActiveCell.Offset(0, 0).Value '番号 .Range("L24").Value = ActiveCell.Offset(0, 2).Value '種類 .Range("F3").Value = ActiveCell.Offset(0, 3).Value '型式 .Range("C23").Value = ActiveCell.Offset(0, 4).Value '測定日 .Range("C24").Value = ActiveCell.Offset(0, 5).Value '製造日 .Range("C9").Value = ActiveCell.Offset(0, 6).Value 'ライン .Range("C10").Value = ActiveCell.Offset(0, 7).Value '担当 .Range("C7").Value = ActiveCell.Offset(0, 9).Value '外観 .Range("C8").Value = ActiveCell.Offset(0, 10).Value '気密 .Range("C11").Value = ActiveCell.Offset(0, 23).Value '(1)min .Range("C12").Value = ActiveCell.Offset(0, 24).Value '(1)max .Range("F7").Value = ActiveCell.Offset(0, 25).Value '(2)min .Range("F8").Value = ActiveCell.Offset(0, 26).Value '(2)max '繰返し処理をしているので一度に印刷される。 .PrintOut End With End If End If Loop End Sub

このQ&Aのポイント
  • DCP-J914Nでモノクロ印刷をしても文字がピンク色で印刷され、さらに文字が薄くて読みにくい問題が発生しています。
  • この問題は4月に購入したばかりのDCP-J914Nで発生しており、印刷品質チェックも関係ないことが確認されています。
  • ご使用の環境はiPhone14で無線LAN接続されており、関連するソフト・アプリは特記されていません。
回答を見る

専門家に質問してみよう