Nếu bạn có một mẫu chứng chỉ hay mẫu giấy khen trên PowerPoint. Bạn cần tạo hàng loạt giấy khen theo danh sách lớp học. Theo cách truyền thống bạn sẽ tạo cho từng học sinh. Công việc này sẽ làm bạn tiêu tốn nhiều thời gian, và có thể sai lệch do lỗi đánh máy.
Bài viết này tôi xin chia sẻ cách tạo hàng loạt giống như tính năng trộn thư trên Word. Chỉ mất vài phút bạn đã tạo ra hàng trăm, hàng nghìn mẫu tuyệt đối chính xác. Và khi tạo xong công cụ này, bạn có thể sử dụng mãi mãi.
Tạo form mẫu trên PowerPoint
Trước tiên các bạn hãy tạo một thư mục trên ổ gốc (ổ D hay E tùy máy tính của bạn) với tên tùy ý. Tiếp theo các bạn mở PowerPoint lên, và đưa mẫu giấy khen hay chứng chỉ của bạn vào PowerPoint.
Trên mẫu mới đưa vào PowerPoint, các bạn chèn Text Box vào các vị trí cần đưa thông tin vào. Trên file mẫu tôi đã thêm TextBox vào các vị trí: Tên Trường, Tên học sinh, Lớp, Danh hiệu, Năm học.
Tiếp theo chúng ta sẽ định nghĩa tên của từng TextBox đã thêm vào bằng cách nhấp vào Home \ Select \ Selection Pane. Nhấp vào từng TextBox đã thêm trên mẫu, để đặt tên như mong muốn.
Lưu ý: để hạn chế lỗi trong việc viết code trên VBA, khuyến khích các bạn đặt tên không dấu, và không có khoảng trắng giữa các từ.
Các bạn cũng có thể tải file mẫu của tôi ở đường dẫn bên dưới về dùng tạm nhé.
Lưu lại file PowerPoint vào thư mục đã tạo trước đó với tên MauBieu.
Tạo danh sách và hàm trộn thư trên Excel
Trên file danh sách, các bạn chèn thêm một nút nhấn và đặt tên là Trộn Thư như hình:
Các bạn có thể tham khảo cách bật tab Developer và cách chèn nút qua các bài viết:
Sao chép đoạn code bên dưới và dán vào Module 1 trên trình soạn thảo code VBA của Excel. Gán hàm Insert2PowerPoint() vào nút Trộn Thư.
Sub Insert2PowerPoint() Dim myPowerPoint As PowerPoint.Application Dim activeSlide As PowerPoint.Slide Dim LastRow As Integer Dim myFilePath, Filename As String Dim LinkPPT As String myFilePath = ThisWorkbook.Path LinkPPT = myFilePath & "\MauBieu.pptx" Set myPowerPoint = CreateObject("PowerPoint.Application") myPowerPoint.Presentations.Open (LinkPPT) myPowerPoint.Visible = True LastRow = Sheets("Data").Cells(Sheets("Data").Rows.Count, "B").End(xlUp).Row For i = 3 To LastRow myPowerPoint.ActiveWindow.View.GotoSlide myPowerPoint.ActivePresentation.Slides.Count Set activeSlide = myPowerPoint.ActivePresentation.Slides(myPowerPoint.ActivePresentation.Slides.Count) If i < LastRow Then Dim newSlide As PowerPoint.Slide Set newSlide = myPowerPoint.ActivePresentation.Slides(myPowerPoint.ActivePresentation.Slides.Count).Duplicate()(1) End If activeSlide.Shapes("TenTruong").TextFrame.TextRange.Text = Sheets("Data").Cells(1, 5).Value activeSlide.Shapes("HoTen").TextFrame.TextRange.Text = Sheets("Data").Cells(i, 2).Value activeSlide.Shapes("DanhHieu").TextFrame.TextRange.Text = Sheets("Data").Cells(i, 3).Value activeSlide.Shapes("TenLop").TextFrame.TextRange.Text = Sheets("Data").Cells(i, 4).Value activeSlide.Shapes("NamHoc").TextFrame.TextRange.Text = Sheets("Data").Cells(2, 5).Value Next i AppActivate ("PowerPoint") Set activeSlide = Nothing Set newPowerPoint = Nothing End Sub
Cuối cùng, các bạn nhấp vào nút Trộn Thư để xem thành quả tạo ra nhé. Nếu có thắc mắc hoặc không hiểu xin để lại bình luận bên dưới. Thank for Watching!
bạn có thể phân tích kỹ code ở trên đc k vì k phải file nào cx giống file nào
ReplyDelete