Làm cách nào để tạo và chèn hình dạng trong PowerPoint với VBA?

Vài ngày trước, tôi muốn tự động hóa công việc khá đơn giản là tạo một số trang trình bày PowerPoint. Khi tự động hóa PowerPoint, bạn thường làm việc với bộ sưu tập Trang trình bày và Hình dạng. Trang trình bày khá tự giải thích và hình dạng là khá nhiều thứ khác bao gồm hộp văn bản, nút hành động, đối tượng phương tiện, nhãn, hình ảnh, chú thích, lưu đồ, v.v. Mặc dù tôi sẽ trình bày các kỹ thuật với PowerPoint, nhưng một số cú pháp thực sự khá áp dụng cho Microsoft Word và Excel.

Tóm lại, trước khi bắt đầu phát triển macro VBA trong PowerPoint, bạn cần bật tab phát triển của mình .

Trước hết, hãy bắt đầu bằng cách tự động tạo bản trình bày với một số trang chiếu như được hiển thị trong hướng dẫn này: tạo bản trình bày trong VBA .

Bây giờ chúng ta có thể bắt đầu làm việc với Shapes. Trước tiên, hãy tiếp tục và mở VBA Editor bằng cách nhấn Alt + F11.

Làm việc với Shapes với VBA

Thêm một hộp văn bản với VBA

Chúng tôi sẽ bắt đầu bằng cách thêm một hộp văn bản dọc vào trang chiếu đầu tiên của chúng tôi trong bản trình bày. Thêm mã sau vào Module1, sau đó tiếp tục và nhấn nút Lưu (Ctrl + s) và Chạy macro của bạn (nhấn F5 hoặc nhấn Run Sub / User Form).

Sub CreateTextBox()
Set MySlide = ActivePresentation.Slides(2)

    With MySlide.Shapes
        .AddTextbox(Orientation:=msoTextOrientationVertical, _
         Left:=90, Top:=200, Width:=80, _
         Height:=200).TextFrame.TextRange.Text _
        = ("This is my vertical text box")

End With

End Sub

Lưu ý rằng bạn có thể thay đổi kích thước các kích thước hộp văn bản của mình khá dễ dàng với VBA. Trong trường hợp này, chúng tôi sẽ thay đổi kích thước hình dạng đầu tiên trong trang trình bày thứ hai, vui lòng sửa đổi nếu cần.

Sub ResizeText()
Set MyShape = ActivePresentation.Slides(2).Shapes(1)

'Add your required dimensions as needed below
   With MyShape
         .Width = 200
         .Height = 35

End With
End Sub

Hiệu ứng văn bản với VBA

Bây giờ chúng ta hãy giả sử rằng chúng ta muốn thêm một hộp văn bản vào tất cả các trang trình bày trong bản trình bày, lần này hấp dẫn hơn một chút về mặt hình ảnh. Để làm điều đó, chúng tôi sẽ sử dụng VBA để tạo các hiệu ứng Văn bản tùy chỉnh mà chúng tôi có thể nhúng vào một hoặc nhiều trang trình bày trong bản trình bày. Trước tiên, chúng ta sẽ lặp lại các slide trình bày và sau đó thêm hiệu ứng văn bản nếu cần.

Sub SetEffects()

Dim i As Integer

For i = 1 To ActivePresentation.Slides.Count
    ActivePresentation.Slides(i) _
    .Shapes.AddTextEffect msoTextEffect12, "Draft for Review", _
    "Segoe UI", 32, msoTrue, msoTrue, 650, 50
Next

End Sub

Đây là kết quả ;-):

Làm cách nào để tạo và chèn hình dạng trong PowerPoint với VBA?

Lưu ý rằng bạn cũng có thể sử dụng một hình mờ đơn giản để đạt được kết quả cụ thể này.

Chú thích PowerPoint với VBA

Ví dụ tiếp theo của chúng tôi sẽ thêm chú thích vào bản trình bày của bạn. Trong ảnh minh họa này, chúng ta sẽ thêm chú thích cho trang chiếu thứ hai.

Sub CreateCallout()

ActivePresentation.Slides(2).Shapes.AddCallout(Type:=msoCalloutTwo, Left:=200, Top:=50, _  Width:=300, Height:=100).TextFrame.TextRange.Text = "My Callout"

End Sub

Đặt thuộc tính cho hình dạng

Nhiều thuộc tính định dạng của hình dạng không được thiết lập bởi các thuộc tính áp dụng trực tiếp cho  đối tượng Shape  hoặc  ShapeRange  . Thay vào đó, các thuộc tính hình dạng có liên quan được nhóm lại dưới các đối tượng phụ, chẳng hạn như  đối tượng FillFormat  , chứa tất cả các thuộc tính liên quan đến phần tô của hình dạng hoặc  đối tượng LinkFormat  , chứa tất cả các thuộc tính duy nhất cho các đối tượng OLE được liên kết. Để đặt thuộc tính cho hình dạng, trước tiên bạn phải trả về đối tượng đại diện cho tập hợp các thuộc tính hình dạng có liên quan, sau đó đặt thuộc tính của đối tượng được trả về đó. Ví dụ: bạn sử dụng  thuộc tính Fill  để trả về  đối tượng FillFormat  , sau đó bạn đặt thuộc  tính ForeColor  của  đối tượng FillFormat  để đặt màu nền trước cho hình dạng đã chỉ định, như trong ví dụ sau.

VB

Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)

Áp dụng một thuộc tính hoặc phương thức cho nhiều hình dạng cùng một lúc

Trong giao diện người dùng, có một số thao tác bạn có thể thực hiện với một số hình dạng được chọn; ví dụ: bạn có thể chọn một số hình dạng và đặt tất cả các màu tô riêng lẻ của chúng cùng một lúc. Có những thao tác khác bạn chỉ có thể thực hiện với một hình dạng duy nhất được chọn; ví dụ: bạn chỉ có thể chỉnh sửa văn bản trong một hình nếu một hình duy nhất được chọn.

Trong Visual Basic, có hai cách để áp dụng các thuộc tính và phương thức cho một tập hợp các hình dạng. Hai cách này cho phép bạn thực hiện bất kỳ thao tác nào mà bạn có thể thực hiện trên một hình duy nhất trên nhiều hình dạng, cho dù bạn có thể thực hiện thao tác tương tự trong giao diện người dùng hay không.

  • Nếu thao tác hoạt động trên nhiều hình dạng đã chọn trong giao diện người dùng, bạn có thể thực hiện thao tác tương tự trong Visual Basic bằng cách xây dựng  bộ sưu tập ShapeRange  có chứa các hình dạng bạn muốn làm việc và áp dụng trực tiếp các thuộc tính và phương thức thích hợp vào bộ  sưu tập ShapeRange  .

  • Nếu thao tác không hoạt động trên nhiều hình dạng đã chọn trong giao diện người dùng, bạn vẫn có thể thực hiện thao tác trong Visual Basic bằng cách lặp qua bộ  sưu tập Hình dạng  hoặc qua  bộ sưu tập ShapeRange  có chứa các hình dạng bạn muốn làm việc và áp dụng các thuộc tính thích hợp và các phương thức cho  các đối tượng Hình dạng riêng lẻ  trong bộ sưu tập.

Nhiều thuộc tính và phương thức áp dụng cho  đối tượng Shape  và  bộ sưu tập ShapeRange  sẽ không thành công nếu được áp dụng cho một số loại hình dạng nhất định. Ví dụ:  thuộc tính TextFrame  không thành công nếu được áp dụng cho hình dạng không thể chứa văn bản. Nếu bạn không chắc chắn rằng mỗi hình dạng trong  bộ sưu tập ShapeRange  có thể được áp dụng một thuộc tính hoặc phương thức nhất định cho nó, thì đừng áp dụng thuộc tính hoặc phương thức đó cho bộ  sưu tập ShapeRange  . Nếu bạn muốn áp dụng một trong các thuộc tính hoặc phương thức này cho một tập hợp các hình dạng, bạn phải lặp qua bộ sưu tập và kiểm tra từng hình dạng riêng lẻ để đảm bảo đó là loại hình dạng thích hợp trước khi áp dụng thuộc tính hoặc phương thức cho nó.

Áp dụng thuộc tính hoặc phương thức cho bộ sưu tập ShapeRange

Nếu bạn có thể thực hiện một thao tác trên nhiều hình dạng đã chọn trong giao diện người dùng cùng một lúc, bạn có thể thực hiện tương đương theo chương trình bằng cách xây dựng  bộ sưu tập ShapeRange  rồi áp dụng các thuộc tính hoặc phương thức thích hợp cho nó. Ví dụ sau đây xây dựng một phạm vi hình dạng chứa các Hình tự động có tên "Ngôi sao lớn" và "Ngôi sao nhỏ" và áp dụng màu tô chuyển màu cho chúng cũng như áp dụng màu tô chuyển màu cho chúng.myDocument

VB

Set myDocument = ActivePresentation.Slides(1) 
Set myRange = myDocument.Shapes _ 
    .Range(Array("Big Star", "Little Star")) 
myRange.Fill.PresetGradient msoGradientHorizontal, _ 
    1, msoGradientBrass

Sau đây là các hướng dẫn chung về cách hoạt động của các thuộc tính và phương thức khi chúng được áp dụng cho  bộ sưu tập ShapeRange  .

  • Áp dụng một phương thức cho bộ sưu tập tương đương với việc áp dụng phương thức đó cho từng  đối tượng Hình dạng riêng lẻ  trong bộ sưu tập đó.

  • Việc đặt giá trị của một thuộc tính của bộ sưu tập tương đương với việc đặt giá trị thuộc tính của từng hình dạng riêng lẻ trong phạm vi đó.

  • Thuộc tính của bộ sưu tập trả về một hằng số trả về giá trị của thuộc tính cho một hình dạng riêng lẻ trong bộ sưu tập nếu tất cả các hình dạng trong bộ sưu tập có cùng giá trị cho thuộc tính đó. Nếu không phải tất cả các hình dạng trong bộ sưu tập đều có cùng giá trị cho thuộc tính thì nó sẽ trả về hằng số "hỗn hợp".

  • Thuộc tính của bộ sưu tập trả về kiểu dữ liệu đơn giản (chẳng hạn như  LongSingle hoặc  String ) trả về giá trị của thuộc tính cho một hình dạng riêng lẻ nếu tất cả các hình dạng trong bộ sưu tập có cùng giá trị cho thuộc tính đó.

  • Giá trị của một số thuộc tính chỉ có thể được trả về hoặc đặt nếu có chính xác một hình trong bộ sưu tập. Nếu có nhiều hơn một hình trong bộ sưu tập thì sẽ xảy ra lỗi thời gian chạy. Đây thường là trường hợp trả về hoặc đặt thuộc tính khi hành động tương đương trong giao diện người dùng chỉ có thể thực hiện được với một hình dạng duy nhất (các hành động như chỉnh sửa văn bản trong hình dạng hoặc chỉnh sửa các điểm của dạng tự do).

Các nguyên tắc trước đây cũng áp dụng khi bạn đặt thuộc tính của các hình dạng được nhóm dưới các đối tượng phụ của  bộ sưu tập ShapeRange  , chẳng hạn như  đối tượng FillFormat  . Nếu đối tượng phụ biểu thị các thao tác có thể được thực hiện trên nhiều đối tượng đã chọn trong giao diện người dùng, bạn sẽ có thể trả về đối tượng từ bộ  sưu tập ShapeRange  và đặt các thuộc tính của nó. Ví dụ: bạn có thể sử dụng  thuộc tính Fill  để trả về  đối tượng FillFormat  đại diện cho phần tô của tất cả các hình dạng trong  bộ sưu tập ShapeRange  . Việc đặt các thuộc tính của  đối tượng FillFormat này  sẽ đặt các thuộc tính giống nhau cho tất cả các hình dạng riêng lẻ trong  bộ sưu tập ShapeRange  .

Lặp qua bộ sưu tập Hình dạng hoặc ShapeRange

Ngay cả khi bạn không thể thực hiện thao tác trên nhiều hình dạng trong giao diện người dùng cùng lúc bằng cách chọn chúng rồi sử dụng lệnh, bạn vẫn có thể thực hiện hành động tương đương theo chương trình bằng cách lặp qua bộ sưu tập Hình  dạng  hoặc thông qua  bộ sưu tập ShapeRange  có chứa các hình dạng bạn muốn. muốn làm việc và áp dụng các thuộc tính và phương thức thích hợp cho  các đối tượng Hình dạng riêng lẻ  trong bộ sưu tập. Ví dụ sau lặp qua tất cả các hình dạng trên và thêm văn bản vào từng hình dạng là Hình tự động. và thêm văn bản vào từng hình là Hình tự động.myDocument

VB

Set myDocument = ActivePresentation.Slides(1) 
For Each sh In myDocument.Shapes 
    If sh.Type = msoAutoShape Then 
        sh.TextFrame.TextRange.InsertAfter " (version 1)" 
    End If 
Next

Ví dụ sau xây dựng  bộ sưu tập ShapeRange  chứa tất cả các hình dạng hiện được chọn trong cửa sổ đang hoạt động và đặt văn bản trong mỗi hình dạng trong bộ sưu tập có thể chứa văn bản.

VB

For Each sh in ActiveWindow.Selection.ShapeRange
    If sh.HasTextFrame Then
        sh.TextFrame.TextRange = "Initially selected"
    End If
Next

Căn chỉnh, phân phối và nhóm các hình dạng trong một phạm vi hình dạng

Sử dụng  các phương pháp Căn chỉnh  và  Phân phối  để định vị một tập hợp các hình dạng có liên quan với nhau hoặc liên quan đến tài liệu chứa chúng. Sử dụng  phương pháp Nhóm  hoặc  phương pháp Nhóm lại  để tạo thành một hình dạng được nhóm từ một tập hợp các hình dạng.

Leave a Comment

Sửa lỗi “Mega.Nz muốn lưu trữ tệp trên thiết bị này” [8 bản hack nhanh]

Sửa lỗi “Mega.Nz muốn lưu trữ tệp trên thiết bị này” [8 bản hack nhanh]

Tìm hiểu cách xử lý lỗi mega.nz muốn lưu trữ tệp trên thiết bị này với 8 thủ thuật hữu ích!

FiveM không thể tải Citizengame.dll [10 bản sửa lỗi đã được chứng minh]

FiveM không thể tải Citizengame.dll [10 bản sửa lỗi đã được chứng minh]

Thấy Fivem không thể tải citizengame.dll khi khởi chạy GTA 5, sau đó làm theo các bản sửa lỗi xóa bộ nhớ cache bị hỏng, Chỉnh sửa tệp CitizenFX.INI, v.v.

6 giải pháp khắc phục lỗi cập nhật Windows 10 0x800f0831

6 giải pháp khắc phục lỗi cập nhật Windows 10 0x800f0831

Khắc phục lỗi cập nhật Windows 10 0x800f0831 bằng nhiều giải pháp hữu ích và hiệu quả. Hướng dẫn chi tiết từng bước để bạn dễ dàng thực hiện.

7 bản sửa lỗi nhanh cho lỗi ReCaptcha dành cho chủ sở hữu trang web: Loại khóa không hợp lệ

7 bản sửa lỗi nhanh cho lỗi ReCaptcha dành cho chủ sở hữu trang web: Loại khóa không hợp lệ

Thấy Google ReCaptcha "Lỗi đối với chủ sở hữu trang web: Loại khóa không hợp lệ", sau đó thử các bản sửa lỗi như Hạ cấp xuống khóa ReCaptcha V2, cập nhật trình duyệt, v.v.

Cách sử dụng các giới hạn cho các câu hỏi trong Microsoft Forms

Cách sử dụng các giới hạn cho các câu hỏi trong Microsoft Forms

Sử dụng giới hạn trong Microsoft Forms để yêu cầu câu trả lời số dự kiến, dễ dàng thiết lập và quản lý cho cuộc khảo sát hoặc bài kiểm tra của bạn.

Làm thế nào để sửa lỗi 651 trong Windows 10 / 8.1 & 7? (Giải pháp dễ dàng)

Làm thế nào để sửa lỗi 651 trong Windows 10 / 8.1 & 7? (Giải pháp dễ dàng)

Áp dụng các Thủ thuật đã cho để sửa Lỗi 651 trong Windows 7 / 8.1 và Windows 10. Tất cả các giải pháp được đưa ra đều rất đơn giản để áp dụng và hiệu quả.

[Đã giải quyết] Làm thế nào để khắc phục lỗi 0xc000014C trên Windows 7/8 & 10?

[Đã giải quyết] Làm thế nào để khắc phục lỗi 0xc000014C trên Windows 7/8 & 10?

Hướng dẫn cách khắc phục Lỗi 0xc000014C trên Windows 7/8 & 10 một cách hiệu quả với các giải pháp đơn giản và dễ thực hiện.

[CẬP NHẬT] Cách khắc phục mã lỗi 0x7E và Autorun.dll bị thiếu trong Windows 10

[CẬP NHẬT] Cách khắc phục mã lỗi 0x7E và Autorun.dll bị thiếu trong Windows 10

Hướng dẫn chi tiết khắc phục lỗi mã 0x7E và thiếu autorun.dll trong Windows 10. Sửa lỗi dễ dàng mà không cần sự trợ giúp từ chuyên gia.

Cách Đóng (Kết thúc) Biểu mẫu, Khảo sát hoặc Câu đố trong Microsoft Forms

Cách Đóng (Kết thúc) Biểu mẫu, Khảo sát hoặc Câu đố trong Microsoft Forms

Bạn có thể đóng biểu mẫu theo cách thủ công trong Microsoft Forms hoặc thiết lập ngày kết thúc tự động. Các tùy chọn này cho phép bạn đóng biểu mẫu khi bạn đã sẵn sàng.

Cách thiết lập điểm dừng tab trong Microsoft Word

Cách thiết lập điểm dừng tab trong Microsoft Word

Khám phá cách làm cho nút tab hoạt động cho bạn với các điểm dừng tab trong Word. Gợi ý thiết lập và thay đổi điểm dừng tab trên Windows và Mac.