• ベストアンサー

エクセルで印刷範囲を自動で指定し、印刷するマクロ

エクセルの表の中から、ある特定の文字が入っている セルを探し、そのセルから「下に3、右に2」の範囲 (文字が入っているセルは含まない)を自動的に範囲 指定して印刷するマクロをつくりたいのですが、どうすればよいでしょうか? たとえば、「○」が入力されているセルが A2だとすればA3からC5を自動的に範囲指定して印刷 するようにしたいのです。 どうぞよろしくお願いします。

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

  • ベストアンサー
  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.1

売上というシートの印刷範囲をA3からC5にしたいなら Sheets("売上").PageSetup.PrintArea = "A3:C5" これは、文字列での設定になります。 もし、Cells(x, y)から下に3、右に2なら Sheets("売上").PageSetup.PrintArea = Range(Cells(x + 1, y), Cells(x + 3, y + 2)).Address というようになります。 印刷実行は Sheets("売上").PrintOut ただし、PrintOutメソッドは引数が多いのでヘルプでお調べください。 範囲を直接指定して Sheets("売上").Range("A3:C5").PrintOut も可能です。

その他の回答 (2)

  • error123
  • ベストアンサー率21% (54/247)
回答No.3

もう解答がでてますが、こんなやりかたもあります。 Sub test1() With ActiveSheet On Error GoTo line .Cells.Find(What:="○", LookIn:=xlValues, LookAt:= _ xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _ , MatchByte:=False, SearchFormat:=False).Select Selection.Offset(1).Resize(3, 3).Select Selection.PrintOut Copies:=1 End With Exit Sub line: MsgBox "○がないわよ~ん!" End Sub

回答No.2

こんばんは。 ↓でどうでしょうか? -------------------- Sub test() Dim c As Range For Each c In ActiveSheet.UsedRange If c.Value = "○" Then c.Offset(1).Resize(2, 3).Select Selection.PrintOut End If Next c End Sub --------------------

関連するQ&A

  • Excelのマクロにおいて、期間指定で印刷範囲の設定方法

    Excelのマクロにおいて、期間指定で印刷範囲の設定方法 Excelのマクロで分からない事がありましたので質問させて頂きます。 Excelで、特定の期間(例えば2010/7/1~2010/10/31)以外の日は 特定のセルを印刷しないよう設定する事は可能でしょうか。 例えば… A1セル TODAY関数 B1セル ああああ C1セル いいいい D1セル うううう とした場合、指定期間(例えば2010/7/1~2010/10/31)はA1~D1までを印刷範囲として、 指定期間以外はC1のみを印刷範囲から外したい、という事です。 指定期間過ぎたらセル削除…という方法では事情により駄目なのです。 無茶な事言っているかもしれませんが、可能な方法がありましたらご教授お願い致します。

  • Excelマクロで印刷範囲の指定をしたい

    Excelで一覧表を作成し、 『印刷A3』と『印刷A4』というボタンを作り、 それぞれ印刷範囲が異なるようにマクロを組みたいと思い、『印刷A3』の場合は下記のマクロで問題ありませんでした。 【印刷A3】 ------------------------------------------------- Sub 印刷A3_Click() Worksheets(7).PageSetup.PrintArea = _ Range("A6").CurrentRegion.Address With Worksheets(7).PageSetup .Orientation = xlLandscape .PaperSize = xlPaperA3 .Zoom = 63 End With Worksheets(7).PrintOut Preview:=True End Sub ------------------------------------------------- セルA6以降の入力されているセルを選択できるのですが、『印刷A4』の場合は、列の範囲を23列までとし、23列目以降は印刷範囲外としたいです。 (列は最大で33列まであります) 行は『印刷A3』と同じように、入力されている全てのセルを範囲としたいです。 マクロ初心者のため、教えていただけると助かります。 よろしくお願い致します。

  • Excelのマクロを使わず、数式内のセル指定範囲をダイナミックにすることはできますか?

    Excelで数式内に範囲を指定するときに、先頭と最後尾のセル番地を指定しますが、他のセルで指定した数値を指定したセル番地の行数に指定することはできますか? 例えば、以下のようなサンプルにおいて A B C D 1 10 2 4 2 32 3 42 4 20 5 17 6 =sum(A2:A4) C1番地に2、D1番地に4を入力すると自動的に A6番地でA2~A4の範囲を指定して足し算してくれるようなことをマクロを使わずに実現できるでしょうか?

  • EXCEL 範囲指定後矢印線を引くマクロの作り方

    範囲選択した任意(例:A1~C1)のセルに、オートシェイプの矢印線を自動的に引くマクロの作り方を教えて下さい。 できれば、矢印線の始点にオートシェイプの丸(黒丸ではなく白丸)も一緒に引けるマクロも教えて下さい。 範囲指定するセルの長さは一定ではなく、長さがいろいろになります。 工程表を作成するにあたり、同じ手順を繰り返す為、マクロ化したいです。

  • Excelマクロ 範囲指定について教えて下さい。

    ソフトから書き出したテキスト形式のファイルを、エクセルで読み込んで範囲を指定し、 他のブックのシートに貼り付けるという、いつもの作業をマクロで簡素化しようと、 マクロ初心者の私は、マクロの自動記録と、インターネットで調べたりで作っているのですが、 範囲指定でつまづいています。 読込んだファイルには、A列からH列までデータがあります。 行のほうは、その都度変わります。 A列を下に見ていくと、途中<小計>という文字が何度か出てきます。 左上端がA4として、そこから初めての<小計>がある行の1段上の行までで 範囲指定させることは出来るのでしょうか? 例えば、A20に<小計>があるなら、指定範囲を A1:H19 という具合に するのはどうしたらいいですか? 下のマクロでは、H列の右下端まで全部範囲指定するので、ダメですね。 Dim 左上端 As String, 右下端 As String Windows("aaa.txt").Activate Worksheets("aaa").Select 左上端 = "A4" 右下端 = Range(左上端).SpecialCells(xlLastCell).Address Range(左上端 & ":" & 右下端).Select Selection.Copy Windows("bbb.xls").Activate Sheets("bbb").Select Range("A1").Select ActiveSheet.Paste Application.CutCopyMode = False Excel2003を使っています。 よろしくお願いします。

  • EXCEL 指定範囲内の空白セルに特定数だけ文字を入力するマクロ教えてください。 

    マクロ初心者です。 指定範囲内の空白セルに特定数だけ文字を入力するマクロを考えていますが、まったくわかりません。どなたか教えていただけますか? 詳細内容 (1)下記のような空白セルを含む範囲内        A B C D       1  A君       2       3A君  B君       4  C君  (2)別セルでA君に1追加するとA君が表示上追加される        A B C D       1  A君  A君←どこでも空白セルならいい       2       3A君  B君       4  C君 

  • マクロの自動実行について

    マクロの自動実行についてお伺いします。 今、エクセルに一定のデータを貼り付けたら、(例えばナンバーを元に)自動的にソートされるマクロを作ろうとしてます。 以下流れになります。 **************************** 以下貼り付け(エクセル以外からの元データ) (プログラムの詳細は分かりませんが、エクセルなどにコピペできるものらしいです。) 1|Aさん 3|Bさん 2|Cさん ~ N|XXさん ↑をエクセルをシートに貼り付けしたら、別シートにソートされて 1|Aさん 2|Cさん 3|Bさん ~ N|XXさん という表が出来上がる。 **************************** 自動実行だとworksheet_changeというイベントがあるようですが、特定の範囲なりセルなりが指定されてる場合にいきる処理のように見えます。 そんなに広範囲ではないことは予想できますが、はっきりとしたデータの範囲も量も分からない場合、ループで範囲を覚え、それをソートするのがいいのでしょうか。 ちょっと質問が曖昧な気もしますが、アドバイスお願いします。

  • エクセルの範囲指定マクロ

    エクセル2002のマクロで印刷範囲指定を例えば ActiveSheet.PageSetup.PrintArea = "A1:E60" と指定した時に、"A1:E60"の”1”と”60”を変数にする事はできますか。

  • Excel 範囲指定印刷するマクロ(初心者)

    複数のセルをドラッグし、コマンドボタンを押すと範囲指定されたセルが印刷範囲の設定となり、印刷するマクロを組みたいのですがどのような記述になりますか?Print_Areaを使うことまではわかるのですが・・なお範囲指定するセルの行列番号は固定ではなく、指定する範囲が随時異なるものとします。 初心者ですいませんがお願いします。

  • エクセルで任意の文字を指定範囲から検索

    お世話になります。 エクセルにて特定のセルに入力した文字を指定してある範囲から検索し、指定した位置に表示をさせると言った事は出来るのでしょうか? 例 シート1:A1に検索したい文字を入力 シート2:A1~A50までの行を検索 シート1:上記検索で該当する行をA2~A50に表示 こういった検索は可能なのでしょうか? Ctrl+Fやフィルタではなく、セルに入力した文字を検索するようにしたいのです。 可否のみでも、こうゆうマクロを使えば出来ると言った事でも構いません。 よろしくお願いします。

専門家に質問してみよう