ここから本文です

ExcelのVBAでの質問です。 下記の記述を某所で見かけたのですが、これを集約印...

アバター

ID非公開さん

2018/10/302:13:27

ExcelのVBAでの質問です。

下記の記述を某所で見かけたのですが、これを集約印刷したいと考えています。

この記述であると、1枚1枚印刷が実行されているのですが、
お教えいただければ幸いです。
(理想としては1枚に2ページ分の印刷をしたいと思っています)

Sub 印刷()
Dim LastRow As Long
Dim i As Long
Dim myNo As Long

If vbNo = MsgBox(“印刷を開始していいですか?”, vbYesNo) Then Exit Sub

With Worksheets(“スタッフマスタ”)
LastRow = .Cells(.Rows.Count, “A”).End(xlUp).Row

For i = 1 To LastRow

myNo = .Range(“A” & i).Value

With Worksheets(“印刷シート”)
.Range(“J4”).Value = myNo
.PrintOut Copies:=1, Collate:=True
End With
Next i
End With

MsgBox “印刷が終わりました”

End Sub

この質問は、活躍中のチエリアン・専門家に回答をリクエストしました。

閲覧数:
33
回答数:
1

違反報告

ベストアンサーに選ばれた回答

hel********さん

2018/10/306:52:01

>理想としては1枚に2ページ分の印刷をしたいと思っています

そもそも、印刷するシートに2名分の表を1ページに印刷できるように作っておく必要があります。それによって、MyNoのセル位置が変わってきますし、1ページ内に2名のMyNoを転記することになりますよね。
この転記するセル位置が分かれば、ループ処理を2名分の番号を指定するだけです。
例えば、1ページのMyNoを転記するセル位置がJ4とJ14なら次のようなコードになります。前後は省略しています。


----- 略 --------------
For i = 1 To LastRow Step 2

myNo1 = .Range(“A” & i).Value
myNo2 = .Range(“A” & i).Offset(1).Value
With Worksheets(“印刷シート”)
.Range(“J4”).Value = myNo1
.Range("J14").Value= myNo2
.PrintOut Copies:=1, Collate:=True
End With
Next i

----- 略 --------------

  • アバター

    質問者

    ID非公開さん

    2018/10/423:41:43

    ご回答いただきましてありがとうございました。
    筆舌に尽くし難いほど感謝しております。
    お教え頂いた記述を元に結局4人分集約したものを
    印刷することになりましたが、作成することができました。
    今回は本当にありがとうございました。

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる