Thay đổi font chữ hàng loạt trong PowerPoint bằng VBA

Khi làm việc với slide PowerPoint, nhiều khi ta gặp tình trạng các ô chữ cùng một chức năng nhưng lại có định dạng khác nhau: khác font chữ, khác màu, khác kích cỡ… Lý do cho việc này đến từ nhiều nguyên nhân, thường là do ta copy từ ngoài vào, hoặc khi nhiều người cùng làm việc trên một file lớn. Bởi vậy trong bài viết này Học Excel Online sẽ chia sẻ cho bạn một đoạn code VBA siêu ngắn để thay đổi font chữ hàng loạt trong PowerPoint. Đoạn code này cũng có thể được áp dụng để thay đổi các định dạng khác như màu sắc, kích cỡ, màu nền…

Bởi đây là bài viết giới thiệu một ứng dụng nhanh nên tác giả sẽ không đi quá sâu vào phân tích. Chi tiết về VBA trong PowerPoint sẽ có trong những bài viết tiếp theo

Thay đổi font chữ hàng loạt trong PowerPoint sử dụng VBA

Giả sử ta có 1 file PowerPoint như sau. Với ví dụ này ta sẽ đổi font chữ của tiêu đề từ Calibri Light (Headings) thành Times New Roman.


Trước khi tiến hành thao tác trong cửa sổ VBE, ta cần xác định định được đối tượng ta làm việc cùng.

Đầu tiên, ta click chọn vào tiêu đề, chọn vào thẻ Home, chọn Arrange, chọn Selection Pane…

Tại thanh vừa xuất hiện bên lề phải, ta để ý cụm “Title 1” đã được tô đậm. Đó là tên của hình khối mà ta sẽ làm việc cùng.

Thay đổi font chữ hàng loạt trong PowerPoint

Bởi mục đích của bài viết là thay đổi font chữ hàng loạt, nên hãy đảm bảo tất cả các đối tượng tiêu đề đều được đặt cùng một tên (Title 1)

Trong trường hợp muốn đổi tên, ta click đúp vào tên của đối tượng trong thanh (trong ví dụ này là Title 1) và nhập tên mới vào.

Sau khi xác định được tên đối tượng, ta tiến hành mở cửa sổ Visual Basic Editor trong thẻ Developer (phím tắt Alt + F11). Tại cửa sổ VBE, ta chọn Insert -> Module và copy đoạn code dưới đây.

Code của chúng ta như sau:

Sub test()
Dim sld As Slide
For Each sld In Application.ActivePresentation.Slides
sld.Shapes("Title 1").TextFrame.TextRange.Font.Name = "Times New Roman"
Next sld
End Sub

Sau khi gán vào trong cửa sổ, ta ấn Run Sub/Userform (phím tắt F5) để chạy đoạn code. Quay trở lại file PowerPoint và xem sự thay đổi.

Giải thích

Để truy cập và làm việc với đối tượng tiêu đề, cụ thể là “Chữ trong tiêu đề” ta đi theo tầng như sau:

Hiểu một cách đơn giản, ta sẽ truy cập theo trình tự: Ứng dụng -> Bản trình chiếu -> Slide -> Khối, hình vẽ -> Khung chữ trong hình vẽ -> Vùng chữ và cuối cùng là Font, Font Name

Đầu tiên, ta gán biến sld cho đối tượng Slide.

Tiếp theo đó, vòng lặp For each… Next sẽ lặp qua từng slide (biến sld) trong các slide ( Application.ActivePresentation.Slides).

Ở bên trong vòng lặp, ta xác định Shape cần thao tác là “Title 1”. Tiếp theo là TextFrame.TextRange như trên hình minh họa.

Sau cùng, đối tượng ta cần thao tác là Font, cụ thể là Font Name. Ta viết vào .Font.Name. Và giá trị của Font Name là Times New Roman.

Ta hoàn toàn có thể đổi sang các font khác như Arial, Calibri…

Ta cũng có thể áp dụng tương tự với các thuộc tính khác như màu chữ, kiểu chữ, cỡ chữ… Ví dụ trong trường hợp muốn đổi sang màu xanh dương ta có thể viết như sau:

sld.Shapes(“Title 1”).TextFrame.TextRange.Font.Color = vbBlue

Danh sách các màu có thể được kể đến dưới dây:

Hoặc trong trường hợp số lượng màu này quá ít ỏi, ta có thể viết:

sld.Shapes(“Title 1”).TextFrame.TextRange.Font.Color = RGB(255, 255, 0)

Sau đó bạn có thể tìm kiếm màu RGB theo ý muốn và thay số vào.

Thay đổi font chữ hàng loạt trong PowerPoint
Kết quả cuối cùng