• 締切済み

Excel 印刷のマクロ

前任がExcelで作成した請求書のファイルで 「全印刷」のボタンを実行すると 顧客の請求書を1枚ずつ印刷する仕組みになっています。 新しい顧客ができたら、別のシートのリストに名前や金額を追加していくようになっているのですが、しばらくはうまくいっていたのに、あるときから、新しい顧客の請求書だけが印刷されなくなってしまいました。 そこで、全印刷のマクロのコードを確認すると下記のようになっていました。 'リストを1行1枚の伝票形式で印刷するマクロ Sub 全印刷() Worksheets("請求書").Activate TDATA = Range("g3") For 伝票カウンタ = 1 To TDATA Range("C3") = 伝票カウンタ STYPE = Range("E3") If (STYPE = 0) Then Else 印刷 End If Next 伝票カウンタ End Sub Sub 印刷() ' Range("B4:G48").Select ActiveSheet.PageSetup.PrintArea = "$b$4:$g$48" ActiveWindow.SelectedSheets.PrintOut Copies:=1 End Sub と記述がありました。 この中で、印刷するリストや範囲に関係するような記述が分かれば何とかなるのかと考えているのですが・・・。 何か分かる方、教えていただけませんか?おそらく、直接的な印刷対象の記述はないように思えるのですが・・・ ヒントでもあればと思っています。

みんなの回答

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

>Worksheets("請求書").Activate TDATA = Range("g3") 請求書シートのG3セルに印刷数(顧客数)がセットしてあるのではないのでしょうか? 顧客リスト数よりも小さな数値になっていませんか?

ysawa0518
質問者

お礼

アドバイス通り、G3のセルに印刷数があり、さらに別の集計シートへ顧客数のカウントがありました。 そこの範囲を修正したので、恐らくこれでいけると思います! 次回の全印刷が来月なので、その時に結果が分かると思います。 ありがとうございました。

ysawa0518
質問者

補足

ありがとうございます。 早速確認してみます。

関連するQ&A

  • エクセルで簡単なマクロを組んだのですが…。

    連続印刷を行う簡単なマクロを組んだのですが、指定行を変更しても1行目からまた印刷されてしまうのですがどうしてでしょうか?ちなみにこんなマクロです。 'リストを1行1枚の伝票形式で印刷するマクロ Sub 個票発行() Worksheets("個票").Activate Dim 個票カウンタ As Integer For 個票カウンタ = 1 To _ Application.WorksheetFunction.CountA(Worksheets("一覧表").Range("A1:A88")) Range("B1") = 個票カウンタ 印刷 Next 個票カウンタ End Sub よろしくお願いいたします。マクロ初心者です。

  • ブックの中の1枚だけ選んで印刷したい

    win7とExcel2007でマクロ作成中の初心者です。 以下、ファイルの中の複数シートを印刷できました。 Private Sub 請求書印刷_Click() Application.ScreenUpdating = False Unload Me 請求書の印刷100 '請求書印刷 Worksheets(1).Select ActiveWindow.DisplayHorizontalScrollBar = False End Sub Sub 請求書の印刷100() ' Dim i As Integer For i = 1 To Worksheets.Count - 8 With Worksheets(i) If .Range("F11").Value <> 0 Then .PageSetup.PrintArea = "$B$1:$U$44" .PrintOut End If End With Next i Worksheets(1).Activate End Sub ------------------------------------ 今度は、同一のファイルから、指定の単一のシートを印刷したいので 以下のコードを実行すると、 Private Sub 単数印刷_Click()' Application.ScreenUpdating = False Unload Me Unload G印刷 Dim i As Integer With 名簿リスト2 For i = 0 To .ListCount - 1 If .Selected(i) Then 請求書の印刷範囲200 ' Worksheets(.list(.ListIndex)).PrintPreview Worksheets(Split(.list(.ListIndex - 0), " ")(1)).PrintPreview ' End If Next i End With ActiveWindow.DisplayHorizontalScrollBar = False GH印刷.Show End Sub Sub 請求書の印刷範囲200() ' ActiveSheet.Unprotect Dim i As Integer For i = 1 To Worksheets.Count - 8 With Worksheets(i) .PageSetup.PrintArea = False '印刷範囲のクリア If .Range("F11").Value <> 0 Then .PageSetup.PrintArea = "$B$1:$T$44" End If End With Next i Worksheets(1).Activate End Sub 以下の行が黄色くなりマクロがエラーとなり停止します。 エラーは 実行時エラー9 インデックスが有効範囲にありません となります。 Worksheets(Split(.list(.ListIndex - 0), " ")(1)).PrintPreview ' これと同様のファイルで試すと何なく1枚だけ印刷できました。 このエラーの原因はなんでしょうか?解決方法を教えてください。

  • 一覧表から特定の行のみを選択して印刷するマクロですが、もう一歩のところで悩んでいます。

    'リストを1行1枚の伝票形式で印刷するマクロ Sub 個票発行() Worksheets("個票").Activate Dim 個票カウンタ As Integer For 個票カウンタ = 1 To _ Application.WorksheetFunction.CountA(Worksheets("一覧表").Range("A1:A88")) Range("B1") = 個票カウンタ 印刷 Next 個票カウンタ End Sub これだとA1からA88まですべて印刷してしまうのですが特定のセルに★印のある行のみ選択後印刷したければどういうマクロを組みいれればいいですか?お教えください。

  • 連続印刷の簡単なマクロを組みました。どなたかお助け下さい。

     以下のようなマクロを組みました。(マクロ初心者です)下記にでてきます一覧表・個票の作成や下記に続いて入力済みの印刷のマクロには問題ないとは思いますが以下のマクロが全く動きかけしないのですが何か原因は考えられますか?今日一日中考え込んでいました。最初は、コンパイルエラーで変数の定義ができてないとの表示が出ましたので1文、付け加えたのですが全く実行されません。  'リストを1行1枚の伝票形式で印刷するマクロ Sub 個票発行() Worksheets("個票").Activate Dim 個票カウンタ As Integer For 個票カウンタ = 1 To _ Application.WorksheetFunction.Count(Worksheets("一覧表").Range("A1:A88")) Range("B1") = 個票カウンタ 印刷 Next 個票カウンタ End Sub よろしくお願い致します。 最近サーバ負荷の表示と共になかなかマイページにつながりませんので御礼の返事が遅れました折にはお許し下さいませ。

  • 印刷マクロがおかしくなった~

    印刷マクロがおかしくなりました。 コ-ドは次のとおりです。 Sub 最終処理分印刷() '----- 印刷範囲 列指定 --------- Const Sh = "入力" '  <----- シ-ト名指定 Const Left_Col = "A" '  <------ 印刷範囲の左端列 Const Right_Col = "S" '  <----- 印刷範囲の右端列 Const Target_Col = "T" ' <----- 印刷データ判定列(日付形式) Const Prev_Mode = 1 '  <----- 0 = 直接印刷 /  1 = プレビュー '------------------------------ Dim TopRw As Long Dim EndRw As Long Dim Target_Date As Date Dim N As Long With Worksheets(Sh) EndRw = .Range(Target_Col & "65536").End(xlUp).Row If Not IsDate(.Range(Target_Col & EndRw).Value) Then MsgBox "印刷するデ-タがありません。 終了します。" Exit Sub Else Target_Date = .Range(Target_Col & EndRw).Value End If TopRw = EndRw Do While .Range(Target_Col & TopRw).Value = _ .Range(Target_Col & TopRw).Offset(-1).Value TopRw = TopRw - 1 If TopRw = 1 Then Exit Do Loop N = EndRw - TopRw + 1 .PageSetup.PrintArea = Range(Left_Col & TopRw & _ ":" & Right_Col & EndRw).Address If Err.Number > 0 Then MsgBox "プリンタ-の準備が、出来ていません。" Exit Sub End If If MsgBox("受付簿の印刷を開始します。印刷日は入力されていますか?", vbOKCancel, "確認") = vbOK Then '"通知書”欄から"保険証書”欄までは印刷しない .Range("K1:N1").EntireColumn.Hidden = True If Prev_Mode = 1 Then .PrintOut Preview:=True Else 'ユーザーフォームによるメッセージ表示 UserForm2.Show vbModeless DoEvents .PrintOut Preview:=False 'メッセージ用のユーザーフォームを閉じる UserForm2.Hide MsgBox Target_Date & " 印刷分を " & N & _ " 件 印刷しました。", , "印刷完了" End If End If .PageSetup.PrintArea = False '印刷終了後"通知書”欄から"保険証書”欄まで再度表示 .Range("K1:N1").EntireColumn.Hidden = False End With End Sub VBAを実行すると、 > .Range("K1:N1").EntireColumn.Hidden = True 実行時エラ-’1004’ RangeクラスのHiddenプロパティを設定できません。 原因がわかりません。

  • エクセルのマクロ

    セルの値が変わったら動くマクロですが、2つ書くとエラーが出ます。 どのように直したらいいでしょうか? Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Address If Intersect(Target, Range("EK22")) Is Nothing Then Exit Sub Else Range("EK24:EM28").Select Selection.ClearContents End If End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("EK24")) Is Nothing Then Exit Sub Else Range("EK27:EM28").Select Selection.ClearContents End If End Sub

  • EXCEL マクロで変化する印刷範囲を設定したい

    複数年分集計したEXCELの表の中からある年(度)のデータをマクロで印刷範囲を設定したい!です。 ・EXCELのシートはA~AK列までのデータです。 ・A4~AK8までが「タイトル行」です。 ・A1列に「2014/7/1」等といった日付のデータが入っています。 ・上記「タイトル行」とある年(度)のデータをマクロで自動に選択して  印刷範囲を設定したいです。下記は、2014年のデータを印刷範囲とした  マクロです。どの部分を修正すればある年のデータを抽出するマクロに  できるでしょうか?教えてください。宜しくお願いします。 Sub 印刷範囲() ' ' 印刷範囲 Macro ' 印刷範囲を指定する ' ' Range("A4:AK8").Select ActiveSheet.PageSetup.PrintArea = "$A$4:$AK$8" ActiveWindow.ScrollColumn = 38 ActiveWindow.ScrollColumn = 2 ActiveWindow.SmallScroll Down:=-39 Range("A170:AK220").Select ActiveSheet.PageSetup.PrintArea = "$A$4:$AK$8,$A$170:$AK$220" Range("U208").Select End Sub

  • EXCEL マクロ 

    お世話になります。 マクロは初心者です。 セルの数値を参照して、シートをアクティブにしたいのですが 下記のような繰り返しでシートが30ぐらいあるので、簡単な 表現に出来ないでしょうか。 宜しくお願いします。 Private Sub Workbook_Open() If 0 <= Worksheets(4).Range("M1") < 7 Then Worksheets(4).Activate End If If 0 <= Worksheets(5).Range("M1") < 7 Then Worksheets(5).Activate End If If 0 <= Worksheets(6).Range("M1") < 7 Then Worksheets(6).Activate End If If 0 <= Worksheets(7).Range("M1") < 7 Then Worksheets(7).Activate End If If 0 <= Worksheets(8).Range("M1") < 7 Then Worksheets(8).Activate End If If 0 <= Worksheets(9).Range("M1") < 7 Then Worksheets(9).Activate End If End Sub

  • エクセル・マクロボタンの表示を変更したい

     初歩的質問ですみません。  Excel2000で、VBAの修正を頼まれています。  シート上に印刷用ボタンが2個、既に作られているので、その表示タイトルを (例えば、「4月分印刷→5月分印刷」のように)変更したいのです。  しかし、 右クリックしてもタイトルにカーソルが点滅しませんし、マクロ名などの表示も出てきません。 ユーザーフォームもありませんでした。 コードは(標準モジュールではなく)Sheetに以下のように記述されています。 Private Sub Printout_Click() ActiveSheet.PageSetup.PrintArea ="$A$2:$G$20" End Sub Private Sub Printout2_Click() ActiveSheet.PageSetup.PrintArea ="$F$2:$L$20" End Sub  どこにも、ボタンのタイトル表示が見つからないので、変更できず困っています。 (非表示のSheetなどもありません)  どなたか、ご存知の方がいらしゃったら、教えて下さい。 よろしくお願いします。

  • エクセルのマクロ設定について

    クリックすると、日付が表示されるように、下記のマクロ設定してあります。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Intersect(Target, Range("C4:C30")) Is Nothing Then Exit Sub If ActiveCell = "" Then ActiveCell = Date Cancel = True End If End Sub C4~C30とG4~G30の2箇所にしたいのですが、式はどうしたらいいのでしょうか。 よろしくお願いします。

専門家に質問してみよう