特定の行のみを選択して印刷するマクロについての悩み

このQ&Aのポイント
  • 特定の行のみを選択して印刷するマクロについて悩んでいます。
  • 現在のマクロでは、一覧表の全ての行を印刷してしまいますが、特定のセルに★印のある行のみを選択して印刷したいです。
  • どのようなマクロを組み入れれば、特定の行のみを印刷できるでしょうか?お教えください。
回答を見る
  • ベストアンサー

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

'リストを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まですべて印刷してしまうのですが特定のセルに★印のある行のみ選択後印刷したければどういうマクロを組みいれればいいですか?お教えください。

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

  • ベストアンサー
回答No.1

印刷したいデータには、シート"一覧表"のデータのとなりB列(B1からB88)に★印を入れることにした場合、下記でいけるはずです。 Sub 個票発行() Worksheets("個票").Activate Dim 個票カウンタ As Integer For 個票カウンタ = 1 To _ Application.WorksheetFunction.CountA(Worksheets("一覧表").Range("A1:A88")) Range("B1") = 個票カウンタ If Worksheets("一覧表").Range("B" & 個票カウンタ) = "★" Then 印刷 Next 個票カウンタ End Sub

ransuke
質問者

お礼

早速ありがとうございました。感激です。ぜひやってみます。

関連する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文、付け加えたのですが全く実行されません。  'リストを1行1枚の伝票形式で印刷するマクロ Sub 個票発行() Worksheets("個票").Activate Dim 個票カウンタ As Integer For 個票カウンタ = 1 To _ Application.WorksheetFunction.Count(Worksheets("一覧表").Range("A1:A88")) Range("B1") = 個票カウンタ 印刷 Next 個票カウンタ End Sub よろしくお願い致します。 最近サーバ負荷の表示と共になかなかマイページにつながりませんので御礼の返事が遅れました折にはお許し下さいませ。

  • 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 と記述がありました。 この中で、印刷するリストや範囲に関係するような記述が分かれば何とかなるのかと考えているのですが・・・。 何か分かる方、教えていただけませんか?おそらく、直接的な印刷対象の記述はないように思えるのですが・・・ ヒントでもあればと思っています。

  • Excellマクロ Cellsの範囲選択について

    エクセル2003についてお尋ねします。 A1には行番号にあたる変数が表示されるようになっています。 その変数によって選択するセルの範囲が変わるようにすることが目的でした。 「A1の行番号の5~10列目を選択する」というマクロを 下記のような記述を行いましたが、※のところでエラーが出てしまい、問題がわからずにおります。 お手数ですが解決策をご教授ください。 Sub マクロ1() Dim j As Integer j = Range("A1") Worksheets("Sheet1").Activate Range(Cells(j, 5), Cells(j, 10)).Select ←※ End Sub よろしくお願いいたします。

  • マクロで封筒を自動印刷

    マクロで封筒を自動印刷出来る様にファイルを作りました。 先日、そのマクロで封筒を印刷する前に 別のファイルの物を印刷しようと思い、そのファイルの印刷設定を変えて 印刷をしました。 その後、マクロで作ったファイルで封筒を印刷したところ 印刷設定がおかしくなってしまいました。 とりあえず、設定を直し何度かマクロで印刷を試みましたが いくら直して上書きしても印刷設定が直らず・・・・。 一度、PCを再起動して再び試みると印刷がきちんとされました。 この現象はマクロを使っているからなのでしょうか?? それともマクロの使い方が悪くて起きる症状なのでしょうか? 対策方法があれば教えて頂けるとうれしいです。 使っているマクロは次のとおりです。 Sub Futo_Copy() '////////////////////////////// '印刷を行う '////////////////////////////// Dim i As Integer Dim S_1 As String '1行目 Dim S_2 As String '2行目 Dim S_3 As String '3行目 Dim S_4 As String '4行目 Dim S_5 As String '5行目 Dim S_6 As String '6行目 Dim S_7 As String '7行目 Dim S_8 As String '8行目 Dim S_9 As String '9行目 Dim S_10 As String '10行目 Application.ScreenUpdating = False '描画をしない 'sheet_name = ActiveSheet.Name 'アクティブシート名を取得 'シートの中で使用されている最大の列を求める。 'row_count = Worksheets("印刷対象").Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row 'シートの中で使用されている最大の行を求める。 'col_count = Worksheets("印刷対象").Cells.Find("*", Range("A1"), , , xlByColumns, xlPrevious).Column row_count = Worksheets("印刷対象").Range("A65536").End(xlUp).Row For i = 3 To row_count '印刷対象の3行目からループ Worksheets("出力").Select 'データ取得 S_1 = Worksheets("印刷対象").Cells(i, 1) S_2 = Worksheets("印刷対象").Cells(i, 2) S_3 = Worksheets("印刷対象").Cells(i, 3) S_4 = Worksheets("印刷対象").Cells(i, 4) S_5 = Worksheets("印刷対象").Cells(i, 5) S_6 = Worksheets("印刷対象").Cells(i, 6) S_7 = Worksheets("印刷対象").Cells(i, 7) S_8 = Worksheets("印刷対象").Cells(i, 8) S_9 = Worksheets("印刷対象").Cells(i, 9) S_10 = Worksheets("印刷対象").Cells(i, 10) Worksheets("出力").Cells(1, 1) = S_1 Worksheets("出力").Cells(2, 1) = S_2 Worksheets("出力").Cells(3, 1) = S_3 Worksheets("出力").Cells(4, 1) = S_4 'Worksheets("出力").PrintPreview 'プレビュー Worksheets("出力").PrintOut 'プリントアウト Next i 'Worksheets("出力").Cells.Clear 'シートのクリア Application.ScreenUpdating = True '描画開始 Worksheets("印刷対象").Activate End Sub 出来ればこのマクロの形をあまり変えずに 症状が直せるといいのですが・・・。 よろしくお願い致します。

  • エクセルVBAの勉強を始めました。教えてください。

     VBAの勉強中なのですが、とにかくマクロで連続印刷をしたいのです。For~Nextステートメントを使いたいのですが、以下のマクロのTo以下の意味がわかりません。どうしてTo以下が数字になっていないのですか?初心者には全くわかりません(以下は連続印刷時のマクロの一部分です)  For 伝票カウンタ 1 to _ Application.WorksheetFunction.Count(Worksheets("売掛金合計票").Range("A4:A13)) Range("B2") = 伝票カウンタ 印刷 Next 伝票カウンタ    またApplication.WorksheetFunction.とは何者ですか?? よろしくお願い致します。

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

    エクセルで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

  • マクロ セル範囲の選択の仕方について

    いつも回答して頂きありがとうございます。 ネット等で検索し、有効なマクロ記述を使用してセル範囲の選択を行いましたが、 自分が思っている通りに動きませんでした。 『質問内容』 C7を起点とした最終の列 (C7:D7) ← 自分の狙いの選択範囲(Dより大きい文字がきて欲しかった) 実際は、(A7:C7)が選択された。 どこらへんの記述が間違っているのでしょうか? 御指導の程よろしくお願い致します。 ちなみに下記が自分が作成中のマクロです。 Sub シートを繰り返し選択する() Dim d As Integer Dim retu As Integer d = 3 retu = Range("IV7").End(xlToLeft).Column Worksheets(Worksheets("一覧").Cells(d, 2).Value).Activate ActiveSheet.Range(Cells(7, 3), Cells(7, retu)).Select End Sub

  • エクセルのマクロで行選択

    現在、エクセルでマクロを組んでいます。 行いたい内容としては 1.行6~1765までを選択 2. 1.で選択した行を非表示 3. 行6~"セルH2の値"までをを選択 4. 3.で選択した行を再表示 3の段階で失敗してしまいます。 Rangeメソッドに失敗しました、と出ます ソースは以下のとおりです ----- Private Sub CommandButton2_Click() Dim x As Integer Range("6:1765").EntireRow.Select Selection.EntireRow.Hidden = True x = Range("H2").Value Range("6:x").EntireRow.Select Selection.EntireRow.Hidden = False End Sub ---- 解決法がわかる方、教えてください よろしくお願いします。

  • マクロで、特定のワードが入ってる行より上を削除したい

    特定の文字が入っている行より上の行全部を削除したいのですが どうすれば良いでしょうか。 B列に「メニュー」と入っている行より上の行を削除したいのですが 行の位置はいつも変わります。 説明行数と空白行数はファイルによって異なるので、 「メニュー」が何行目になるかが、いつもバラバラです。 ―――――― 説明1 説明2 空白行 メニュー ―――――― 試行錯誤の結果、以下のように書きましたが 「.Rows」の行がエラーになってしまうようです。 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Sub Step_01() Dim a With Worksheets("集約") a = Application.WorksheetFunction.Match("メニュー", .Range("b1:b100"), 0) .Rows("1:a").Delete End With End Sub ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ どのように書き換えればよいでしょうか?

専門家に質問してみよう