vba คำสั่งปริ้น แบบให้ปริ้นตั้งแผ่นแรกถึงแผ่นสุดท้าย(มีรูป) รบกวบด้วยนะครับ ขอบคุณ

กระทู้คำถาม

มันเป็นข้อมูลนักเรียนที่มี หลายคน
คืออยากให้สั่งพิมพ์(กดปุ่มพิมพ์)แล้วออกมาหมดทั้งห้อง ทำแบบไหนได้บ้างครับ
เพราะที่หามาได้คือให้พิมพ์ทีละหน้าโดยไป ใส่เลข นักเรียนทีละคน ก่อน แล้วกดปุ่มพิมพ์
ขอบคุณครับ

ในที่นี้ถ้าทำเป็นจดหมายเวียนจะง่ายกว่า แต่ต้องได้ไปเปิด word ขึ้นมาอีกแล้วไปทำนี่นั่นหลายขั้นตอน ก็เลยอยากเขียน vba มาให้สำหรับคน(ครู)ที่ทำจดหมายเวียนไม่เป็นครับ
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 5
ปุ่มสั้งพิมพ์ ต่อกับ Sub loopPrint()


Sub dell()
Dim resule As String
result = MsgBox("Yes or No?", vbYesNo + vbQuestion, "ยืนยันการลบ")
If result = vbYes Then
range("C7:M40").ClearContents
End If

End Sub


Sub pr()
ActiveWindow.SelectedSheets.PrintPreview ' preview
End Sub




Sub loopPrint()
Sheets("แบบรายงานผลการเรียน").Select
Dim p1, p2 As Integer
p1 = range("L14").Value
p2 = range("L15").Value
Call filldata(p1, p2)
End Sub

Sub filldata(ByVal pstart As Integer, ByVal pstop As Integer)

Dim subjectArray()  As Variant
Dim i, j As Integer
Dim getData1(10) As Variant
Dim getData2(10) As Variant
Dim name As String
subjectArray = Array(5, 9, 13, 17, 21, 25, 29, 33, 37, 41)


        For i = pstart To pstop
        
            Sheets("สรุปปลายปี").Select
            name = Cells(i + 6, 2).Value
            For j = 0 To UBound(subjectArray)
                 getData1(j) = Cells(i + 6, subjectArray(j)).Value
                 getData2(j) = Cells(i + 6, subjectArray(j) + 1).Value
            Next j


            Sheets("แบบรายงานผลการเรียน").Select
            range("E5").Value = name
            For j = 0 To UBound(subjectArray)
                  Cells(j + 9, 8).Value = getData1(j)
                  Cells(j + 9, 9).Value = getData2(j)
            Next j
            
   MsgBox "print - " & name
Call pr
  'Debug.Print "print out"

  
        Next i
        
End Sub
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่