- ベストアンサー
エクセルで印刷範囲を自動で指定し、印刷するマクロ
エクセルの表の中から、ある特定の文字が入っている セルを探し、そのセルから「下に3、右に2」の範囲 (文字が入っているセルは含まない)を自動的に範囲 指定して印刷するマクロをつくりたいのですが、どうすればよいでしょうか? たとえば、「○」が入力されているセルが A2だとすればA3からC5を自動的に範囲指定して印刷 するようにしたいのです。 どうぞよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
売上というシートの印刷範囲を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)
もう解答がでてますが、こんなやりかたもあります。 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
- AloneAgain
- ベストアンサー率71% (285/400)
こんばんは。 ↓でどうでしょうか? -------------------- 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 --------------------