アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

たとえば、「○」が入力されているセルが
A2だとすればA3からC5を自動的に範囲指定して印刷
するようにしたいのです。

どうぞよろしくお願いします。

A 回答 (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
も可能です。
    • good
    • 0

もう解答がでてますが、こんなやりかたもあります。



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
    • good
    • 0

こんばんは。



↓でどうでしょうか?
--------------------
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
--------------------
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!