• Trang chủ
  • Giới thiệu
    • Học gia sư kế toán tại Hà Nội
  • Excel
  • Kế toán
  • Kinh nghỉệm
  • DAX
  • VBA
  • Văn bản
  • Access
  • Liên hệ
    • Chính sách bảo mật
Chủ Nhật, Tháng Ba 26, 2023
  • Login
No Result
View All Result
NEWSLETTER
Học gia sư kế toán
  • Trang chủ
  • Giới thiệu
    • Học gia sư kế toán tại Hà Nội
  • Excel
  • Kế toán
  • Kinh nghỉệm
  • DAX
  • VBA
  • Văn bản
  • Access
  • Liên hệ
    • Chính sách bảo mật
  • Trang chủ
  • Giới thiệu
    • Học gia sư kế toán tại Hà Nội
  • Excel
  • Kế toán
  • Kinh nghỉệm
  • DAX
  • VBA
  • Văn bản
  • Access
  • Liên hệ
    • Chính sách bảo mật
No Result
View All Result
Học Gia sư Kế toán
No Result
View All Result

Điều khiển PowerPoint với VBA từ Excel

by My Lê
22/02/2023
in VBA
0
Điều khiển PowerPoint với VBA từ Excel

Originally posted on 12/02/2022 @ 21:40

Điều khiển PowerPoint với VBA từ Excel

  • Chuyên mục:
  • PowerPoint∙VBA

Tại sao phải làm như vậy?

Tôi nhận được rất nhiều câu hỏi về cách ra lệnh cho các chương trình khác bằng VBA thông qua Excel. Trong bài viết này, chúng ta sẽ bàn về cách sao chép một dải ô xác định rồi dán nó vào bài thuyết trình PowerPoint. Có vẻ như nhiệm vụ này sẽ hiệu quả hơn khi thực hiện một cách thủ công. Tuy nhiên, bạn cần tổng hợp một bài thuyết trình có hơn 50 hình ảnh từ Excel, nên việc nhờ VBA macro thực hiện các nhiệm vụ khó khăn thì sẽ nhanh hơn rất nhiều! Hãy để tôi cho bạn thấy mã VBA rồi tôi sẽ đánh dấu một vài trong số các phần chính – những phần quan trọng.

Sub ExcelRangeToPowerPoint()
Dim rng As Range
Dim PowerPointApp As Object
Dim myPresentation As Object
Dim mySlide As Object
Dim myShape As Object’Copy Range from Excel
Set rng = ThisWorkbook.ActiveSheet.Range(“A1:C12”)

‘Create an Instance of PowerPoint
On Error Resume Next

‘Is PowerPoint already opened?
Set PowerPointApp = GetObject(class:=”PowerPoint.Application”)

‘Clear the error between errors
Err.Clear

‘If PowerPoint is not already open then open PowerPoint
If PowerPointApp Is Nothing Then Set PowerPointApp = CreateObject(class:=”PowerPoint.Application”)

‘Handle if the PowerPoint Application is not found
If Err.Number = 429 Then
MsgBox “PowerPoint could not be found, aborting.”
Exit Sub
End If


VBA101 92019 nho

On Error GoTo 0

‘Optimize Code
Application.ScreenUpdating = False

‘Create a New Presentation
Set myPresentation = PowerPointApp.Presentations.Add

‘Add a slide to the Presentation
Set mySlide = myPresentation.Slides.Add(1, 11) ’11 = ppLayoutTitleOnly

‘Copy Excel Range
rng.Copy

‘Paste to PowerPoint and position
mySlide.Shapes.PasteSpecial DataType:=2  ‘2 = ppPasteEnhancedMetafile
Set myShape = mySlide.Shapes(mySlide.Shapes.Count)

‘Set position:
myShape.Left = 66
myShape.Top = 152

‘Make PowerPoint Visible and Active
PowerPointApp.Visible = True
PowerPointApp.Activate

‘Clear The Clipboard
Application.CutCopyMode = False

End Sub

 

Việc dạy Excel ngôn ngữ của PowerPoint

Để điều khiển PowerPoint từ bên trong Visual Basic Editor của Excel, chúng ta cần phải dạy Excel cách đọc các thuật ngữ của PowerPoint. PowerPoint sử dụng bộ từ vựng gồm có “Trang trình chiếu” và “Bài thuyết trình” – những từ này không tồn tại trong ngôn ngữ được mã hóa của Excel. Để khởi động thư viện các đối tượng của PowerPoint, bạn chỉ cần nhấp Tools trong Visual Basic Editor rồi chọn Reference. Rồi hãy chắc rằng tham chiếu Microsoft Office PowerPoint 12.0 Object Library được đánh dấu (phiên bản có thể khác nhau, ví dụ trong Office 2016, tham chiếu có thể là Office PowerPoint 16.0 Object Library). Trong hình ảnh dưới đây, tôi sẽ cho bạn thấy cách làm điều này một cách chính xác và chắc chắn là sau đó Excel sẽ biết ngôn ngữ của PowerPoint!

CẬP NHẬT: Tôi vừa cập nhật mã trong bài viết này nên bạn không cần phải thực hiện bước này, tuy nhiên tính năng itellisense dành cho bất kỳ đối tượng nào của PowerPoint trong Visual Basic Editor sẽ không chạy. Đây sẽ không phải là vấn đề quan trọng trừ khi bạn cần hướng lập trình cho việc thêm sự tự động hóa bổ sung trong PowerPoint vào VBA macro của bạn.

Mở PowerPoint từ bên trong Excel

Bây giờ chúng ta đã dạy PowerPoint cách giao tiếp với Excel, hãy xem xét cách chúng ta có thể hoàn thành việc dán dải ô vào một trang trình chiếu hoàn toàn mới. Gần khúc đầu của mã có một phần trông như thế này:

‘Create an Instance of PowerPoint
On Error Resume Next’Is PowerPoint already opened?
Set PowerPointApp = GetObject(class:=”PowerPoint.Application”)’Clear the error between errors
Err.Clear

‘If PowerPoint is not already open then open PowerPoint
If PowerPointApp Is Nothing Then Set PowerPointApp = CreateObject(class:=”PowerPoint.Application”)

‘Handle if the PowerPoint Application is not found
If Err.Number = 429 Then
MsgBox “PowerPoint could not be found, aborting.”
Exit Sub
End If

On Error GoTo 0

Trong phần này của mã, chúng ta đang xác định liệu Microsoft PowerPoint có đang mở hay không. Nếu PowerPoint đã mở sẵn rồi, thì chúng ta có thể tạo một biến tương đương với toàn bộ chương trình bằng cách sử dụng GetObject. Nếu PowerPoint không chạy, chúng ta có thể sử dụng CreateObject để chạy một mô phỏng của  PowerPoint rồi tạo một biến tương đương với bản mô phỏng đó của PowerPoint.

Khi sử dụng CreateObject, ứng dụng cuối cùng sẽ bắt đầu chạy nhưng nó không hiển thị trên màn hình. Vì thế, chúng ta cần phải bật cài đặt Visible lên (bằng true). Đồng thời, VBA với PowerPoint sẽ khác một chút so với VBA với Excel trong việc nó độc lập hơn trên cửa sổ của nó – cửa sổ này được hiển thị trên màn hình. Vì thế, một lệnh thiết thực phải được viết để Activate PowerPoint.

‘Make PowerPoint Visible and Active
PowerPointApp.Visible = True
PowerPointApp.Activate

 

Điều khiển PowerPoint từ bên trong Excel

Bây giờ thì bạn có thể chắc chắn 100 rằng PowerPoint đang chạy, bạn có thể bắt đầu kiểm soát nó! Đầu tiên, hãy ra lệnh cho PowerPoint tạo ra một bài thuyết trình hoàn toàn mới rồi tạo ra một trang trình chiếu để bạn có thể dán dải ô của mình vào. Bên cạnh đó, rất quan trọng để tạo một biến trong mỗi giai đoạn thực hiện để nếu bạn có muốn tham chiếu bài thuyết trình hay một trang trình chiếu mới tạo, thì bạn chỉ cần thực hiện điều đó với biến tương ứng.

‘Create a New Presentation
Set myPresentation = PowerPointApp.Presentations.Add’Add a slide to the Presentation
Set mySlide = myPresentation.Slides.Add(1, 11) ’11 = ppLayoutTitleOnly

Sao chép từ Excel, dán vào trang trình chiếu

Bây giờ bạn đã có một bài thuyết trình mới và một trang trình chiếu mới, bạn có thể ra lệnh cho Excel dán dải ô của bạn vào PowerPoint. Gần phần đầu của mã, có một dòng cho phép bạn xác định cụ thể dải ô mà bạn muốn sao chép. Biến rng được sử dụng để ghi nhớ dải ô này và cho phép bạn tham chiếu dải ô vào lúc khác trong mã này.

Lưu ý: Thật là một ý tưởng hay khi đặt mã – mã này có thể cần phải được thay đổi một cách thủ công tại một thời điểm nào đó trong tương lai – gần phần đầu của đoạn chương trình con. Điều này ngăn bạn phải cuộn xuống mã của mình rồi chỉ ra chính xác nơi mà bạn đánh vần dải ô bạn muốn sao chép hay trang tính mà bạn muốn lấy dữ liệu. Điều này có thể giúp bạn tiết kiệm rất nhiều thời gian và không gây khó hiểu!

‘Copy Range from Excel
Set rng = ThisWorkbook.ActiveSheet.Range(“A1:D12”)’Copy Excel Range
rng.Copy’Paste to PowerPoint and position
Set mySlide = myPresentation.Slides.Add(1, 11) ’11 = ppLayoutTitleOnly
Set myShapeRange = mySlide.Shapes(mySlide.Shapes.Count)

 


@
·
·
·
Bài viết khác của cùng tác giả

  • Tất cả
  • Python
  • SQL
  • VBA

3.000.000VND 1.800.000VND
PYXL101
Xem chi tiết

3.000.000VND 1.600.000VND
SQL100
Xem chi tiết

499.000VND 199.000VND
PY100
Xem chi tiết

Bài viết liên quan

Tạo công cụ theo dõi Portfolio tiền điện tử với Excel và Power Query

Đối tượng Range trong Excel VBA

Power Automate Desktop là gì, ứng dụng thực tế của Power Automate Desktop

Đối tượng Worksheet trong Excel VBA

Đối tượng Workbook trong Excel VBA

Đối tượng Application trong Excel VBA


Khóa học liên quan

Khóa học Tự động hóa Excel với lập trình VBA cho người mới bắt đầu
Chi tiết khóa học

Khóa học Lập trình VBA nâng cao trong Excel
Chi tiết khóa học

  

© Học Gia Sư Kế Toán. All rights reserved.

My Lê

My Lê

My Lê tên thật là Mê Ly đã có 10 năm kinh nghiệm trong ngành kế toán.

Next Post
Cách sử dụng hàm HYPERLINK để tạo nhiều liên kết khác nhau

Cách sử dụng hàm HYPERLINK để tạo nhiều liên kết khác nhau

Recommended

TẠO THAM CHIẾU NGOẠI TRONG EXCEL ĐỂ DẪN TỚI TRANG TÍNH/BẢNG TÍNH KHÁC

TẠO THAM CHIẾU NGOẠI TRONG EXCEL ĐỂ DẪN TỚI TRANG TÍNH/BẢNG TÍNH KHÁC

1 tháng ago
Hàm VLOOKUP lại lỗi NA, Name, Value – xử lý lỗi VLOOKUP

Hàm VLOOKUP lại lỗi NA, Name, Value – xử lý lỗi VLOOKUP

4 tuần ago

Tin mới nhất

    Fanpage

    • Liên hệ
    • Giới thiệu
    • Đặt quảng cáo
    Liên hệ chúng tôi qua email : hocgiasuketoan.com@gmail.com

    © 2022 Hocgiasuketoan Premium magazine by Hocgiasuketoan

    No Result
    View All Result
    • Trang chủ
    • Giới thiệu
      • Học gia sư kế toán tại Hà Nội
    • Excel
    • Kế toán
    • Kinh nghỉệm
    • DAX
    • VBA
    • Văn bản
    • Access
    • Liên hệ
      • Chính sách bảo mật

    © 2022 Hocgiasuketoan Premium magazine by Hocgiasuketoan

    Welcome Back!

    Login to your account below

    Forgotten Password?

    Retrieve your password

    Please enter your username or email address to reset your password.

    Log In